Соответствие кривой в Java

Первый вопрос здесь, так что извините, если что-то, что я спрашиваю, совершенно глупо.

Я работаю в проекте по распознаванию форм, где я должен разработать приложение, которое получит два изображения: оригинал и эскиз, сделанные пользователем. Я должен определить контуры двух изображений и найти наилучшее совпадение на исходном изображении, соответствующее эскизу, сделанному пользователем.

Я уже изучал некоторые основы обнаружения краев Канни и смог получить контуры нескольких изображений. После того, как у меня есть контуры, мне нужно проанализировать все контуры на изображении и найти наилучшее совпадение, не учитывая перемещение, вращение, масштабирование и окклюзию.

Затем я нашел этот код, который делает именно то, что я хочу: 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

Можно ли изменить этот алгоритм, чтобы он был инвариантным к вращению? Они говорят только о переводе и масштабировании.

1 ответ

Решение

Как вы упоминали, у вас уже есть исходный код на C++ и вы не можете найти версию Java - возможно, вам лучше всего преобразовать код C++ в код Java. Если вам не нужны все части программы на C++, вы можете захотеть скрыть только те части (классы), которые вам нужны.

Преобразование из C++ в Java не всегда может быть тривиальным, но я предполагаю, что будет проще, если вы точно знаете, что вы хотите и как ваша программа должна вести себя. Ниже приведена ссылка на некоторые инструменты преобразования - хотя они могут быть не бесплатными.

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

Другие вопросы по тегам