gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-30 02:57:36 26 4
gpt4 key购买 nike

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

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

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

我看过documentation for perspectiveTransform() method并认为我应该将其存储在以下形状中:

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

欢迎任何建议或提示。

最佳答案

我想出了答案。

在这个 link 上找到它

关键是要这样表达你的观点:

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

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

 pts = numpy.array([pts])

之后的过程是一样的。

关于python - 如何使用 x 和 y 坐标对点进行透视变换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36584166/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com