我正在尝试一些计算机视觉技术,特别是特征检测。我试图通过在图像和特征内核之间进行自相关来识别特征。
但是,生成的相关矩阵对我来说没有意义......谁能帮我理解如何解释或可视化这个矩阵,以便特征所在的位置很明显?
功能内核:
原图:
代码:
import cv2
import pprint
import numpy
import scipy.ndimage
from matplotlib import pyplot as plt
import skimage.feature
# load the image
img = cv2.imread('./lenna.jpg')[:,:,0]
f_kernel = cv2.imread('./lenna_feature.jpg')[:,:,0]
def matched_filter(img, f_kernel, detect_thres):
result = scipy.ndimage.correlate(img, f_kernel)
print("Feature Match Template")
plt.imshow(skimage.feature.match_template(img, f_kernel))
plt.show()
return result
plt.imshow(matched_filter(img,f_kernel,1))
print("Correlation Matrix")
plt.show()
结果:
因此,在第一个结果图像中,在 (150,200) 处有一个明显的最大值点。我将此解释为该功能最可能的位置。
然而,在第二个结果图像,相关矩阵结果中,没有明显的模式。我期待会有一些明显的高相关点。
帮助?