
第一次在知乎写文章,操作不是很熟练,把写好的markdown文件直接导入后发现会出现排版错乱的问题,索性将markdown的内容直接粘贴过来再调整格式。要是有大佬知道怎么解决这个问题请赐教。废话不多说,直接上正文。
本文是在完成图像处理与图像识别课程第六次作业过程中的一些知识点总结,主要包括以下两部分:
- 课后作业
- 两图看懂Forward Warping和Inverse Warping
- OpenCV的相关实现
下文中编程题用到的代码和代码运行结果已经上传到Github中,仅供参考。
一.课后作业
1.证明题
证明:仿射变换(Affine Transformation
)中平行线变换后仍然是平行线。
设AB∥CD,A′,B′,C′,D′
分别是A,B,C,D
经过某个仿射变换后的像。假设A′B′
与C′D'
不平行,则由于它们在同一个平面上,因此它们有公共点P′
,所以点P′
的原像P
既在直线AB
上,又在直线CD
上。这与AB∥CD
的前提矛盾,因此A′B′∥C′D′
。
2.编程题
通过实验对比正向变换(Forward warping
)与反向变换(inverse warping
)对图像变形/扭曲(Image warps
)结果的不同,且总结正向变换的缺点可能有哪些。
注:pts1 = np.float32([[50,50],[200,50],[50,200]]),pts2 = np.float32([[10,100],[200,50],[100,250]]),以pts1->pts2的变换矩阵为对lena.jpg扭曲所需的变换关系。
下图为正向