我需要一些帮助来尝试找出一些东西。我目前有一个python脚本,它使用matplotlib中的imshow方法生成两个图像。我的任务是找到这两个图像之间的相关性,或者换句话说,两个图像之间的相似性。两个图像大小相同,都使用jet颜色Map表。让我知道这是否足够清楚或者我是否需要更详细地解释。如果有人能提供如何做到这一点的示例代码,将会很有帮助。
bfhwhh0e1#
你看过scipy信号处理工具包了吗?
from scipy import signal cor = signal.correlate2d (im1, im2)
将为您计算二维相关性。
eoigrqb62#
查找两个图像相关性的另一种方法是使用opencv中的filter2D。在filter2D函数中,可以将其中一个图像作为InputArray传递(或“src”),另一个作为内核。这将给予相关性,而且速度很快。使用Scipy的SignalIdeCorrelate2D制作一张256X256的图像大约需要18秒。使用Filter2D制作同一张图像大约需要0. 008秒。
import cv2 corr = cv2.filter2D(image1, ddepth=-1, kernel=image2)
我还建议传入浮点图像而不是uint8图像,因为使用uint8图像可能会导致不方便的舍入错误。
# convert to float32 image1_norm = cv2.normalize(image1, None, alpha=0, beta=1, norm_type=cv2.NORM_MINMAX, dtype=cv2.CV_32F)
2条答案
按热度按时间bfhwhh0e1#
你看过scipy信号处理工具包了吗?
将为您计算二维相关性。
eoigrqb62#
查找两个图像相关性的另一种方法是使用opencv中的filter2D。在filter2D函数中,可以将其中一个图像作为InputArray传递(或“src”),另一个作为内核。这将给予相关性,而且速度很快。使用Scipy的SignalIdeCorrelate2D制作一张256X256的图像大约需要18秒。使用Filter2D制作同一张图像大约需要0. 008秒。
我还建议传入浮点图像而不是uint8图像,因为使用uint8图像可能会导致不方便的舍入错误。