自由Man

OpenCV中getPerspectiveTransform()与warpPerspective()函数正解

介绍这两个函数使用方法及原理的文章及官方文档有很多,但发现存在不少坑,总结如下:

  1. 使用getPerspectiveTransform()函数得到的射影变换矩阵的type类型是CV_64F (据说跟系统有关,未验证,我的是64位的系统);进行对应乘操作时,需要做类型转换Mat*.convertTo(Mat*, CV_32F), 否则会报类型不匹配的错误,或者计算结果不对。

  2. 不少文章在介绍原理的时候,对应的点对变换关系是P0 = P1 * H,而getPerspectiveTransform()计算得到的变换矩阵H,实际使用时,点对的对应关系是P0 = H * P1。

  3. 在计算射影变换矩阵的逆矩阵时,需要将矩阵类型转换回CV_64F后,再进行取逆H.inv()操作;同样,使用的时候,又需要将其转换回CV_32F。

  • 评论列表:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-BlogPHP 1.5.2 Zero Theme By 爱墙纸

Copyright ZiYouMan.cn. All Rights Reserved. 蜀ICP备15004526号