Всем привет. Выкладываю здесь, быть может кому нибудь пригодится.
И так, реализация Deformable Template Models (DTM).
Суть:
Есть главная точка, и подточки, содержащие в себе смещения до главной точки. В каждой точке содержится: x,y - коодинаты, color - цвет точки, tolerance - допустимая погрешность цвета, AreaSize - размер области. На данный момент не играет роли.
Для поиска структуры - сперва размечаем шаблон для поиска. При поиске: бежим по изображению, если нашли цвет = цвету главной точки, бежим по смещениям в подточках - если и там все сходится, значит вот оно. Добавляем главную точку в массив и бежим дальше.
В принципе - ничего сложного.
Представленная программа умеет - создавать, изменять существующие, и тестировать шаблоны. А так же генерировать паскале-подобный скрипт с шаблонами, для использования в коде. Работает достаточно шустро.
Компиляция:
для компиляции потребуется Delphi => XE3 и Jedi VCL.
Скрин с разметкой:
Скрин с результатами поиска:
Бинарник во вложении, свежий исходный код всегда можно забрать тут:
https://github.com/CynicRus/dtmeditor/
PS: если вы нашли говнокод, у вас появились мысли по оптимизации, или просто достойная критика - с радостью всё выслушаю.
Лицензия GPL v 3.
СУВ,
Cynic.