是opencv python2包装中的getPerspectiveTransform破坏?
发布时间:2020-12-16 23:30:06 所属栏目:Python 来源:网络整理
导读:在opencv的 python2包装中似乎与“getPerspectiveTransform”有关.首先,它需要两个参数,而不是预期的三个. 所以,而不是第一个包装: cv.GetPerspectiveTransform(source,destination,3x3mat) 下雪了: cv2.getPerspectiveTransform(?,?) 如果我尝试放入两组
在opencv的
python2包装中似乎与“getPerspectiveTransform”有关.首先,它需要两个参数,而不是预期的三个.
所以,而不是第一个包装: cv.GetPerspectiveTransform(source,destination,3x3mat) 下雪了: cv2.getPerspectiveTransform(?,?) 如果我尝试放入两组四个四角坐标作为参数,如下所示: cv2.getPerspectiveTransform(first_set_of_corners,second_set_of_corners) 它会吐出以下错误: cv2.error: C:slaveWinInstallerMegaPacksrcopencvmodulesimgprocsrcimgwarp. cpp:3194: error: (-215) src.checkVector(2,CV_32F) == 4 && dst.checkVector(2,CV _32F) == 4 如果支票不应该等于四(因此四边形的四边形),那么我不确定我想要什么.与python2包装中的其他内容一样,这个功能完全没有文档,所以我不知道它是坏的,更有可能的是我做错了.有没有人设法让这个工作正常? 解决方法
cv2.getPerspectiveTransform没有破坏.
可能是,你的积分不是长度4,也可能不是float32数字. 尝试以下: import cv2 import numpy as np img = cv2.imread('1original.jpg',0) src = np.array([[50,50],[450,450],[70,420],[420,70]],np.float32) dst = np.array([[0,0],[299,299],[0,0]],np.float32) ret = cv2.getPerspectiveTransform(src,dst) print ret 结果是: [[ 8.36097696e-01 -4.51944700e-02 -3.95451613e+01] [ -4.51944700e-02 8.36097696e-01 -3.95451613e+01] [ 6.45161290e-05 6.45161290e-05 1.00000000e+00]] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |