matplotlib 如何找到两个图像之间的相关性

bfrts1fy  于 2023-03-13  发布在  其他
关注(0)|答案(2)|浏览(180)

我需要一些帮助来尝试找出一些东西。我目前有一个python脚本,它使用matplotlib中的imshow方法生成两个图像。我的任务是找到这两个图像之间的相关性,或者换句话说,两个图像之间的相似性。两个图像大小相同,都使用jet颜色Map表。
让我知道这是否足够清楚或者我是否需要更详细地解释。如果有人能提供如何做到这一点的示例代码,将会很有帮助。

bfhwhh0e

bfhwhh0e1#

你看过scipy信号处理工具包了吗?

from scipy import signal
cor = signal.correlate2d (im1, im2)

将为您计算二维相关性。

eoigrqb6

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)

相关问题