Python과 OpenCV – 32 : Shi-Tomasi Corner Detection

이 글의 원문은 https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_feature2d/py_shi_tomasi/py_shi_tomasi.html 입니다.

Shi-Tomasi Corner Detection는 Harris Corner Detector를 기본으로 개선을 통해 좀더 정확한 Corner를 추출해 내는 알고리즘으로 cv2.goodFeaturesToTrack 함수로 구현되어 있습니다. 이에 대한 예제는 아래와 같습니다.

import numpy as np
import cv2
from matplotlib import pyplot as plt

filename = './data/blox.jpg'
img = cv2.imread(filename)
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

corners = cv2.goodFeaturesToTrack(gray,30,0.01,10)
corners = np.int0(corners)

for i in corners:
    x,y = i.ravel()
    cv2.circle(img,(x,y),3,255,-1)

plt.imshow(img),plt.show()

cv2.goodFeaturesToTrack 함수는 4개의 인자를 받는데, 첫번째는 특징점인 Corner를 추출할 입력 이미지로 1채널인 Grayscale 이미지를 받습니다. 두번째는 추출할 특징점의 개수이고 세번째는 특징점으로써의 최소 품질인데 품질의 범위는 0-1 사이값입니다. 이 최소 품질보다 낮으면 특징점으로써 버려집니다. 그리고 마지막 인자는 최소 거리로써 얻어진 특징점에서 이 최소 거리 이내의 특징점은 버려집니다. 아래는 위 예제의 결과입니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다