2014-11-19 2 views
4

첫 번째 질문은 정말 미안하다. 내가 묻는 것은 완전히 어리 석다.자바에서 곡선 매칭

나는 모양 인식 프로젝트에서 일하고 있습니다. 두 곳의 이미지를받는 응용 프로그램을 개발하는 것으로 생각합니다. 원래 이미지와 사용자가 만든 스케치입니다. 나는 두 이미지의 윤곽을 검출하고 사용자가 만든 스케치에 해당하는 원본 이미지에서 가장 잘 일치하는 이미지를 찾아야한다.

저는 이미 Canny 엣지 탐지에 대한 몇 가지 기본 사항을 배우고 있으며 여러 이미지의 윤곽을 잡을 수있었습니다. 등고선을 마친 후에는 이미지의 모든 윤곽을 분석하고 번역, 회전, 크기 조정 및 폐색을 무시하고 가장 일치하는 부분을 찾아야합니다.

그러면 정확하게 원하는 코드를 찾았습니다 : http://www.morethantechnical.com/2012/12/27/2d-curve-matching-in-opencv-w-code/하지만 C++에 있습니다.

나에게 유용한 Java 또는 유사한 알고리즘의 유사한 코드에 대한 대안을 알고 계십니까? BoofCV도 발견되었지만 그러한 작업은 구현되지 않은 것 같습니다.

양해 해 주셔서 감사합니다.

편집 :

나는이 일을 다른 방법을 찾고 있었고, 나는 하우스 도르프 거리 발견이 알고리즘은 불변 회전으로 수정 http://cgm.cs.mcgill.ca/~godfried/teaching/cg-projects/98/normand/main.html

이 가능를? 그들은 번역과 스케일링에 대해서만 이야기합니다.

+0

: http://docs.opencv.org/java/org/opencv/imgproc/Imgproc.html#matchShapes(org.opencv.core.Mat,%20org.opencv합니다. % 20int, % 20double) – berak

+0

제안에 감사드립니다 :) OpenCV에서 findContours 및 matchShapes를 사용했지만 결과가 좋지 않았습니다. 후 주석 모멘트는 작은 사각형이 비행기의 윤곽과 가장 유사하다고 말합니다. – jmvieira

답변

0

당신은 이미 C++에서 소스 코드를 가지고 있으며 자바 버전을 찾을 수 없다는 것을 언급 했으므로 아마도 C++ 코드를 Java 코드로 변환하는 것이 가장 좋습니다. C++ 프로그램의 모든 부분을 필요로하지 않는다면, 필요한 부분 (클래스) 만 감추고 싶을 수도 있습니다.

C++에서 Java 로의 변환은 항상 사소한 것은 아니지만 정확히 원하는 것을 알고 프로그램을 어떻게 동작시키는 지 쉽게 알면 쉽게 추측 할 수 있습니다. 다음은 무료 일 수는 없지만 일부 변환 도구에 대한 링크입니다.

http://www.researchgate.net/post/How_to_convert_the_C_C_code_to_java2

작고 겸손 시작
+0

응답하는 사람이 단 한 명이라면 대답을 수락 할 것입니다. 코드를 변환 할 수 없었으므로이 주제와 관련된 논문에서 알고리즘을 구현하기로 결정했습니다. – jmvieira