Търся алгоритъм за бързо изтъняване, който може лесно да се приложи с помощта на OpenCV. Споменаването на библиотеката е, защото има някои неща, които могат да бъдат направени за миг, например в Mathematica или MATLAB, което ще изисква редове ръчен код в OpenCV + C.

алгоритъм

Алгоритъмът трябва да отговаря на 1 пиксел дебелина и критерии за връзка.

Някой имал ли е опит с внедряването на един от многото налични алгоритми? - Буквално разглезен от големия брой документи, които Google повърна. Всеки показалец в правилната посока би бил достатъчен.

Моля, разгледайте някои изпълнения за разреждане в моя блог:

  1. Алгоритъм на Джан-Суен. (копие на archive.org)
  2. Алгоритъм на Гуо-Хол. (копие на archive.org)

И двамата използват OpenCV 2.x API.

За пълнота публикувам тук набор от изтъняващи алгоритми, реализирани с помощта на OpenCV и C/C ++, които открих в мрежата, докато отговарях на този въпрос. Те отговориха адекватно на този въпрос според моите нужди. Поставянето им тук, в случай че други имат подобни изисквания.

  1. OpenCV код за изтъняване (Guo и Hall нещо, работи с CvMat входове)
  2. Реализацията на JR Parker с помощта на OpenCV
  3. Възможно е тук кодът да е по-ефективен (използва много оптимизираните методи за достъп на OpenCV, но повечето страници са на японски!)

Използвах Zhang-Suen също Guo-Hall; и двете дадоха задоволителни резултати, но не най-добрите. След това изпробвах „Модифициран паралелен изтъняващ алгоритъм” от YY ZHANG и PSP Wang.Той беше много по-добър от предишните два алгоритма. Всеки, който търси добър алгоритъм за отслабване, трябва да опита, тъй като е по-бърз и по-ефективен от другите два.

Не съм сигурен дали това ще ви помогне, но използвах тази библиотека и я намерих за много полезна (включително изтъняване/скелетиране). Можете да изтеглите източника тук: