私はいくつかのコンピューター ビジョン技術、特に特徴検出を試しています。画像と機能カーネルの間で自己相関を行うことにより、機能を識別しようとしています。
ただし、結果の相関行列は私には意味がありません...機能がどこにあるかが明らかになるように、この行列を解釈または視覚化する方法を理解できる人はいますか?
機能カーネル:
元の画像:
コード:
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) に明らかな最大点があります。私は、これが最も可能性の高い場所であると解釈しています。
ただし、2 番目の結果画像、相関行列の結果では、明らかなパターンはありません。明らかな高相関点がいくつかあることを期待していました。
ヘルプ?