我需要帮助来解决一个问题。我目前有一个使用matplotlib中的imshow方法生成两张图片的python脚本。我的任务是找到这两张图片之间的相关性,或者说是相似度。这两张图片大小相同,并且都使用jet色图。
如果这不够清楚,请告诉我是否需要更详细的解释。如果有人能提供如何完成此任务的示例代码,那将非常有帮助。
我需要帮助来解决一个问题。我目前有一个使用matplotlib中的imshow方法生成两张图片的python脚本。我的任务是找到这两张图片之间的相关性,或者说是相似度。这两张图片大小相同,并且都使用jet色图。
如果这不够清楚,请告诉我是否需要更详细的解释。如果有人能提供如何完成此任务的示例代码,那将非常有帮助。
from scipy import signal
cor = signal.correlate2d (im1, im2)
我会为您计算2D相关性。
寻找两张图片的相关性的另一种方法是使用OpenCV中的filter2D函数。在filter2D函数中,您可以将其中一张图片作为InputArray(或“src”)传递,将另一张图片作为卷积核。这将给出相关性,并且速度很快。对于256x256的图像,使用scipy中的signal.correlate2d大约需要18秒。而使用filter2D对于相同的图像只需要大约0.008秒。
import cv2
corr = cv2.filter2D(image1, ddepth=-1, kernel=image2)
# convert to float32
image1_norm = cv2.normalize(image1, None, alpha=0, beta=1, norm_type=cv2.NORM_MINMAX, dtype=cv2.CV_32F)