2024-09-30 14:17:28 发布
网友
我是opencv和图像相关几何的新手。但现在我正在做一些图像处理任务。 以下是我所做的: 给定pts_src、ptsdst,我使用cv2.findhomography()和cv2.warpprospective()扭曲了整个图像
findHomography为我提供了一个3x3单应矩阵。 cv2.warpPerspective()为我提供了一个扭曲的图像,我可以从这个扭曲的图像中检测到一些特征点
但是,我需要将特征点坐标映射回原始输入图像。 有人能告诉我如何做到这一点吗
谢谢
我认为单应矩阵的逆矩阵将是从pts_dst映射回pts_src的新矩阵
pts_dst
pts_src
正如您在评论中所说,如图here所示,您的第三个分量似乎确实是结果向量的缩放系数w:
w
(x, y) → (x′/w, y′/w) where (x′, y′, w′) = mat ⋅ [x y 1] (...) In case of a 2D vector transformation, the z component is omitted.
(x, y) → (x′/w, y′/w)
(x′, y′, w′) = mat ⋅ [x y 1]
因此,您可以通过执行(V[0]/V[2], V[1]/V[2])来重新缩放它,就像您在评论中提到的那样
(V[0]/V[2], V[1]/V[2])
此外,我认为这个比例因子与矩阵的生成方式有关,因此请检查矩阵的详细信息,正如cv2.findHomography()的官方documentation所说:
cv2.findHomography()
Homography matrix is determined up to a scale. Thus, it is normalized so that h33=1.
希望这有帮助
我认为单应矩阵的逆矩阵将是从
pts_dst
映射回pts_src
的新矩阵正如您在评论中所说,如图here所示,您的第三个分量似乎确实是结果向量的缩放系数
w
:因此,您可以通过执行
(V[0]/V[2], V[1]/V[2])
来重新缩放它,就像您在评论中提到的那样此外,我认为这个比例因子与矩阵的生成方式有关,因此请检查矩阵的详细信息,正如
cv2.findHomography()
的官方documentation所说:希望这有帮助
相关问题 更多 >
编程相关推荐