在OpenCV Python中使用estimateRigidTransform函数

3

我正在使用Python中的OpenCV。文档真的很难懂。我该如何正确使用estimateRigidTransform函数?

我想要提取两张图片之间的相似变换,所以我认为不能使用findHomography函数,因为我不想引入剪切等变形。EstimateRigidTransform函数似乎是完美的选择,但我只收到了“none”的输出。它的输入参数是什么?有没有人在简单情况下成功地使用过它?

我的代码大致如下:

img1=cv2.imread('src.jpg')
img2=cv2.imread('dst.jpg')
H = cv2.estimateRigidTransform(img1, img2, False)

我尝试将输入转换为不同的数据类型,但无济于事。我也可以输入关键点或匹配的关键点?

对于两个图像的任何简单示例都会很有用!!谢谢

2个回答

4

estimateRigidTransform有两种工作模式:图像匹配和点集匹配。要进行图像匹配,需要在两个图像中找到感兴趣的点,并找出应该将哪个点与哪个点匹配。我很欣赏创建通用算法的尝试,但这几乎是不可能的任务。因此,我建议您使用estimateRigidTransform的第二种模式,即点集匹配。首先,在图像中找到感兴趣的点。其次,找到不同集合的点之间的匹配。第三,使用estimateRigidTransform找到变换本身。点应以两个相同大小的数组提供(匹配点应位于匹配位置)。

您可以使用this的estimateRigidTransform文档。它简单而且非常描述性。


0

是的,你不能直接在图像上进行变换,你应该先给出两个图像的对应关键点。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接