2016-06-10 1 views
0

크기가 작은 25x20 크기의 스프라이트가 있는데, 256x256 이상은 아닙니다. 이 스프라이트 중 일부는 크기가 약간 축소되거나 일부 픽셀이 삭제되거나 가장자리에 추가되거나 한 색상이 변경되어 복제됩니다.스케일링이나 다른 작은 변화로 복제 된 이미지를 찾았습니까?

어떻게 이러한 중복을 찾을 수 있습니까? 내 응용 프로그램은 C++로 작성되었으며 내 이미지는 SDL_Surfaces *입니다.

필자가 비교하려고하는 일종의 스프라이트를 보여주는 몇 가지 스프라이트 시트 예제를 첨부했습니다. 여기

lower res and other changes

higher res

은 더 명확하게 내가 어떤 사람들은 혼란있어 생각 나는 때 나는 "전체 스프라이트 시트"를 비교하려면 정말 생각하기 때문에 비교하기 위해 노력하고 무엇을 보여줍니다 이미지입니다 단지 서로 비교 invidual 스프라이트를 원하는 :

enter image description here

+0

아픈 것처럼 보입니다. 이론적으로 OpenCV의 템플릿 매칭 (Template Matching)이 효과적입니다. http://docs.opencv.org/2.4/doc/tutorials/imgproc/histograms/template_matching/template_matching.html – lllllllllll

+0

왜 투표가 늦습니까? 이 작업을 수행하는 방법에 대한 온라인 정보는 거의 없습니다. – paulm

+0

온라인 정보가 부족해도 게시물이 좋지 않거나 적합하지 않습니다. 현재의 형태로 _ "나는 어떻게해야 할까?"_라는 질문은 너무 광범위합니다. –

답변

2

Open CV tic tac toe X/O detection에 내 대답을 읽어 보시기 바랍니다. 또한 수용된 대답도 도움이 될 수 있습니다.

사건에 대한 나의 답 : 그것은 OpenCV의합니다 (Documentation 섹션 3을 확인)에서 매치 모양 기능을 사용하여 수행 할 수

그래서 각 이미지에 대한 가장 큰 윤곽 (개체)를받을 수 있도록 전화 기능은 ALL 다른 이미지와 함께 사용하십시오. 이 함수는 두 윤곽 사이의 유사성에 해당하는 모든 이미지 쌍마다 0에서 1 사이의 값을 반환합니다. 값이 작을수록 윤곽선이 더 유사합니다. 다른 임계 값을 설정하여 다른 이미지를 제거 할 수 있습니다 (예 : 0.5와 비슷한 모든 이미지 제거). 평가판 및 오류가 최상의 임계 값을 찾는 유일한 방법 일 수 있습니다. 그리고 행운을 빌어!

관련 문제