OpenCV中:仿射变换+投射变换+单应性矩阵

本文详细介绍了OpenCV库中用于图像几何变换的各种函数,包括getAffineTransform()、estimateRigidTransform()、findHomography()、getPerspectiveTransform()、warpAffine()、warpPerspective()、perspectiveTransform()和estimateAffine3D()。这些函数分别用于计算二维点对间的仿射变换、透射变换、三维点对间的仿射变换,并实现对图像的实际变换操作。transform()函数则用于对二维或三维矢量进行变换。此外,还提到了findFundamentalMat()用于计算点对之间的基矩阵。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


estimateRigidTransform():计算多个二维点对或者图像之间的最优仿射变换矩阵 (2行x3列),H可以是部分自由度,比如各向一致的切变。
getAffineTransform():计算3个二维点对之间的仿射变换矩阵H(2行x3列),自由度为6.
warpAffine():对输入图像进行仿射变换
findHomography: 计算多个二维点对之间的最优单映射变换矩阵 H(3行x3列) ,使用最小均方误差或者RANSAC方法 。
getPerspectiveTransform():计算4个二维点对之间的透射变换矩阵 H(3行x3列)
warpPerspective(): 对输入图像进行透射变换
perspectiveTransform():对二维或者三维矢量进行透射变换,也就是对输入二维坐标点或者三维坐标点进行投射变换。
estimateAffine3D:计算多个三维点对之间的最优三维仿射变换矩阵H (3行x4列)
transform():对输入的N维矢量进行变换,可用于进行仿射变换、图像色彩变换.
findFundamentalMat:计算多个点对之间的基矩阵H。
问题1:如何计算3个二维点对之间的仿射变换矩阵?
答:使用getAffineTransform()。

问题2:如何计算多个二维点对之间的仿射变换矩阵(使用误差最小准则 )?
答:使用estimateRigidTransform()或者findHomography。

问题3:如何计算4个二维点对之间的透射变换?
答:使用getPerspectiveTransform()。

问题4:如何计算多个三维点对之间的仿射变换?
答:使用estimateAffine3D。

问题5:如何对输入图像进行仿射变换?
答:使用warpAffine()。

问题6:如何对输入图像进行透射变换?
答:使用perspectiveTransform()。

问题7:如何对输入的二维点对进行仿射变换?
答:使用transform()。

问题8:如何对输入的三维点对进行投射变换?
答:使用perspectiveTransform()。


注意:其中estimateRigidTransform()方法已经停用,可以使用cv2.estimateAffine2D(),cv2.estimateAffinePartial2D()  分别与estimateRigidTransform(:,:,param3)中param3为True和False等效。Partial不包含尺寸。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值