0

私はいくつかのコンピューター ビジョン技術、特に特徴検出を試しています。画像と機能カーネルの間で自己相関を行うことにより、機能を識別しようとしています。

ただし、結果の相関行列は私には意味がありません...機能がどこにあるかが明らかになるように、この行列を解釈または視覚化する方法を理解できる人はいますか?

機能カーネル:

ここに画像の説明を入力

元の画像:

レナ、元の画像

コード:

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 番目の結果画像、相関行列の結果では、明らかなパターンはありません。明らかな高相関点がいくつかあることを期待していました。

ヘルプ?

4

2 に答える 2