在OpenCV python中的estimateRigidTransform

时间:2014-01-15 04:48:25

标签: python opencv similarity

我在python中使用OpenCV。文档正在扼杀我。如何正确使用estimateRigidTransform?

我正在尝试提取两个图像之间的相似性变换,所以我假设我不能使用findHomography b / c我不想引入剪切等.EstimateRigidTransform似乎是完美的候选者,但我只是收到一个输出“无”。它的投入是什么?有没有人正确使用它,即使是一个简单的案例?

我的代码有效:

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

我试过操纵不同数据类型的输入无济于事。我还可以输入关键点?或匹配的关键点?

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

2 个答案:

答案 0 :(得分:4)

estimateRigidTransform有两种工作模式:图像匹配和点集匹配。为了在图像之间进行匹配,需要在两个图像中找到感兴趣的点并找到哪个点应与哪个点匹配。我很钦佩创建一般案例算法的尝试,但这几乎是不可能完成的任务。所以我建议你使用estimateRigidTransform的第二种模式,即点集之间的匹配。首先,找到图像中的兴趣点。其次,找到不同集合的点之间的匹配。第三,使用estimateRigidTransform查找变换本身。这些点应该以两个相同大小的数组提供(匹配点应该在匹配的位置)。

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

答案 1 :(得分:0)

是的,你无法直接在图像上进行变换,你应该首先给出两个图像的相应关键点。