繁体   English   中英

如何使用x和y坐标进行点的透视变换

[英]How do I make perspective transform of point with x and y coordinate

所以我写了这个小程序,它允许我在两个图像上选择4个点。

将这些点用于我得到的变换矩阵。 之后,我在其中一个图像上选择一个点,并希望可视化该点在其他图像上的位置。

说我的观点是这样的 - > (x,y) - 所以它是一个元组。 我应该如何在图像上格式化这个“位置”,以便可以对其进行转换。

我查看了perspectiveTransform()方法的文档,并认为我应该将它存储在以下形状中:

numpy.array([
        [self.points[self.length-1][0]],
        [self.points[self.length-1][1]]
        ], dtype="float32")

这会给我一次点击这种格式:

Point= [[ 2300.]
        [  634.]]

这种格式似乎不起作用,我使用这个转换矩阵:

M = [[ -1.71913123e+00  -4.76850572e+00   5.27968944e+03]
     [  2.07693562e-01  -1.09738424e+01   6.35222770e+03]
     [  1.02865125e-04  -4.80067600e-03   1.00000000e+00]]

在这个方法中(并得到以下错误):

cv2.perspectiveTransform(src, M)
OpenCV Error: Assertion failed (scn + 1 == m.cols) in cv::perspectiveTransform, file C:\builds\master_PackSlaveAddon-win64-vc12-static\opencv\modules\core\src\matmul.cpp

欢迎任何建议或提示。

我想出了答案。

在此链接上找到它

关键是要表达你的观点:

 pts = numpy.array([[x,y]], dtype = "float32")

然后在现有变量pts上调用另一个numpy.array

 pts = numpy.array([pts])

此后的程序是相同的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM