【发布时间】:2018-03-15 09:03:45
【问题描述】:
我正在研究一个应用程序,其中我有来自使用 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 的模板匹配,但目前我没有成功。
【问题讨论】:
-
请同时发布原始图片
-
嘿,出于保密原因,我不能显示这些图像,所以我显示 X 射线图像并相应地编辑文本。目的是一样的,设法对齐两个图像。
-
对如何解决这个问题有任何帮助吗?
-
谷歌“图像注册”
-
嘿,它按照这个例子工作:learnopencv.com/tag/image-registration