我正在查看一个应用程序,其中我有一个使用X射线获取的单个对象(智能手机)中的两个图像。这两张图片是在不同时刻获得的。因此两个图像的强度内容是不同的,并且我希望能够融合两个图像以便提取关于电话的一些信息。
在两个图像之间,设置略有改变,使得手机没有放在两个图像中的相同像素值。为了能够正确地比较两个图像,我需要翻译和旋转手机的图像,使它们尽可能重叠。
为此我使用python并打开cv(cv2)。我正在考虑使用阈值处理,然后找到两个阈值图像的坐标,并使用坐标将红色图像(或相反的)上的黄色图像映射。附图显示了我到目前为止所获得的内容。
伪代码如下:
ret1, thresh1 = cv2.threshold(img1.astype(np.uint8),200,255,cv2.THRESH_BINARY_INV)
ret2, thresh2 = cv2.threshold(template.astype(np.uint8),200,255,cv2.THRESH_BINARY_INV)
plt.figure(1)
plt.subplot(121)
plt.imshow(thresh1)
plt.subplot(122)
plt.imshow(thresh2)
plt.show()
其中img1是使用第一个滤镜获取的一个图像,而模板是使用第二个滤镜获取的图像。可以看出,手机分别位于黄色和绿色图像中的不同位置。
我的问题是如何执行下一步。如何找到这些阈值图像的坐标,然后叠加两部手机的图像?这是正确的策略还是有更好的解决方案?
我一直在关注模板匹配this link,但目前我没有成功。