[OpenCV 3.2] Template Matching - 트럼프 카드 문양 찾기

matchTemplate 함수를 이용하여 트럼프 카드의 스페이드, 하드, 다이아, 클로버 문양들을 찾아 분류한다.


1. 소스 코드

1) MFC 다이얼로그 꾸미기

2) 소스 코드

같은 문양의 카드는 최대 13장이므로 최대 13번 반복한다.

우선적으로 스페이드, 다이아몬드, 하트, 클로버 순으로 한번씩 템플릿 매칭을 해나간다.

템플릿 매칭 결과 값이 있는 문양은 다음 순에도 찾는다.


2. 실행 결과

1) 원본 이미지

2) 찾을 이미지 (스페이드, 다이아몬드, 하트, 클로버)

3) 결과 이미지

1 : 스페이드, 2: 다이아몬드, 3 : 하트, 4 : 클로버 로 표시


4) 개선 사항

- 카드의 배경이 다른 경우 문양을 오인식한다.

- 문양이 아닌 배경을 오인식하는 경우가 있다.

- 스페이드와 클로바가 서로 틀리는 경우가 있다.

=> ROI 영역 지정과 다른 배경 카드(히든 카드)의 이미지 처리가 필요




컴퓨터 비전과 영상 처리에 대해 독학을 하면서 정리한 걸 적고 있습니다.

전공과 무관하며 전문적인 지식이 아니므로 개인적인 의견과 부족하고 틀린 점이 많습니다.

추가 지식 및 잘못된 점을 지적해주시면 공부하는데 많은 도움이 되겠습니다. 감사합니다^^

- 푸어맨


[Reference]

(매칭률 구하기) http://action713.tistory.com/entry/%EB%A7%A4%EC%B9%AD%EB%A5%A0-%EA%B5%AC%ED%95%98%EA%B8%B0

[OpenCV 3.2] Template Matching - 유사 이미지 모두 찾기

matchTemplate 함수를 이용하여 유사 이미지를 찾아본다.


1. 소스 코드

matchTemplate 결과 이미지에서 minMaxLoc 함수를 이용하여 가장 유사한 이미지를 찾을 수 있다.

가장 유사한 이미지 공간을 백그라운드 색으로 칠한 후에 matchTemplate 함수를 사용하는 방법으로 유사 이미지를 반복하여 찾는다.


2. 실행 결과

MAX_COUNT를 10으로 지정하여 총 10개의 유사 이미지를 찾는다.

유사한 순으로 9,8,7,...,0을 지정하여 숫자가 높을수록 유사도가 높다.

1) 원본 이미지

2) 다이아몬드 템플렛 이미지

3) 하트 템플렛 이미지

4) 별 템플렛 이미지

matchTemplate 함수는 비슷한 크기의 이미지를 찾을 때 상당히 유효하지만 크기의 차이가 크거나 변환 된 이미지에서 유효하지 않다.




컴퓨터 비전과 영상 처리에 대해 독학을 하면서 정리한 걸 적고 있습니다.

전공과 무관하며 전문적인 지식이 아니므로 개인적인 의견과 부족하고 틀린 점이 많습니다.

추가 지식 및 잘못된 점을 지적해주시면 공부하는데 많은 도움이 되겠습니다. 감사합니다^^

- 푸어맨


[Reference]

[Template Matching] http://docs.opencv.org/2.4/doc/tutorials/imgproc/histograms/template_matching/template_matching.html

[Template Similar image] http://stackoverflow.com/questions/34690774/opencv-template-match-similar-object

+ Recent posts