Найти длину контура на изображении

dimi61

Есть картинка наподобие этой:

(допустим, если это важно, что все белые фигуры односвязны, а не так, как на рисунке)
Задача: найти длину границ (нужен алгоритм). Бонус: найти количество фигур.
Подскажите, плиз. Производительность не особо важна.
Спасибо

Dmitriy82

marching cubes

Serab

Ну, для количества и областей и если производительность не важна: стреляешь во все точки подряд, если попал в черную — забиваешь, если в белую — начинаешь закрашивать черным все соседние клетки поиском в ширину, например; прибавляешь единичку к числу областей, повторяешь, ну т.е. продолжаешь стрелять дальше (по порядку).
Про контур долго писал, что знаю, но тут выше опередили научной ссылкой, поэтому удалил =)
А вообще возникла идея, тебе ведь не надо выделять сами контуры, длину можно вроде бы посчитать просто проходом по горизонтали, потом по вертикали, поиском границ цветов и суммированием длин встречающихся маленьких отрезочков.

dimi61

всем спасибо. Оказывается, то, что мне нужно, умеет делать в матлабе тот человек, который и получает картинки. Но спасибо за интересную идею и ссылку.

Barbie29

наваял года три назад подсчет объектов через подсчет замкутых контуров на perl'е и и на С'ях под юниксы с использаванием image magick, длина контура там будет числом пикселев составляющих контур
если еще надо
p.s. ну и поправки нужны, у тебя немного другая задача - длина контуров, я же решал задачу подсчета бинарных объектов на картинке, и у меняберет только односвязные объекты, т,е, оно дырок в объектах не берет

Barbie29

через твои ключевые слова вышел на http://en.wikipedia.org/wiki/Marching_squares ха, а забавно, я только сложнее делал, у этого алгоритма квадрат 2х2 скользит, у меня же квадрат 3х3 по границе контура
видимо быстрее при 2х2 оно должно работать

Tatiana09

Gwyddion
Он умеет импортировать картинки из bmp, tiff и jpg. К нему есть русский мануал. Если будут какие-то вопросы, обращайся.
Оставить комментарий
Имя или ник:
Комментарий: