-
템플릿 매칭스터디그룹/OpenCv 2020. 5. 3. 15:39
템플릿 매칭은 원본 이미지 에서 템플릿 이미지와 일치하는 영역을 찾는 알고리즘이다.
<code>
import cv2
src = cv2.imread("hats.png", cv2.IMREAD_GRAYSCALE)
templit = cv2.imread("hat.png", cv2.IMREAD_GRAYSCALE)
dst = cv2.imread("hats.png")
result = cv2.matchTemplate(src, templit, cv2.TM_SQDIFF_NORMED)
minVal, maxVal, minLoc, maxLoc = cv2.minMaxLoc(result)
x, y = minLoc
h, w = templit.shape
dst = cv2.rectangle(dst, (x, y), (x + w, y + h) , (0, 0, 255), 1)
cv2..imshow("dst", dst)
cv2..waitKey(0)
cv2..destroyAllWindows()
<설명>
src = cv2.imread("hats.png", cv2.IMREAD_GRAYSCALE)
templit = cv2.imread("hat.png", cv2.IMREAD_GRAYSCALE)
dst = cv2.imread("hats.png")
src(원본 이미지)를 선언한다.
templit(템플릿 이미지)를 선언한다.
dst(결과 이미지)를 선언한다.
result = cv2.matchTemplate(src, templit, cv2.TM_SQDIFF_NORMED)
cv2.matchTemplate은 템플릿과 유사한 이미지 영역을 찾기위해 이용 된다.
minVal, maxVal, minLoc, maxLoc = cv2.minMaxLoc(result)
x, y = minLoc
h, w = templit.shape
최소/최대 위치 함수 cv2.minMaxLoc로 검출값을 찾는다.
minLoc(최소값),maxLoc(최대값)에 위치한다.
dst = cv2.rectangle(dst, (x, y), (x + w, y + h) , (0, 0, 255), 1)
결과 dst(결과 이미지)를 표시한다.
템플릿 매칭의 단점은 이미지를 회전하면 이미지를 못 찾는다.
canny edge를 더 공부해야겠다...
작성자: 정혜리
'스터디그룹 > OpenCv' 카테고리의 다른 글
opencv 기초(1) : 픽셀값 읽어오기 (0) 2020.02.05 opencv를 이용한 자율주행 자동차 제작기(2) (0) 2020.01.12 opencv를 이용한 자율주행 자동차 제작기(1) (0) 2020.01.07