Перейти к содержимому
Compvision.ru
vetatto

Выделение стеблей от фона

Recommended Posts

http://habrahabr.ru/post/170909/

delphi и opencv, может пригодиться)

Спасибо) Но видел это уже.

Вот помучился тут с контурами и получил почти то, что мне нужно.

Вот пару фотографий

post-6357-0-47747200-1362036893_thumb.jp

post-6357-0-48282200-1362036944_thumb.jp

post-6357-0-65796000-1362037042_thumb.jp

post-6357-0-09603500-1362037049_thumb.jp

В принципе такой точности мне достаточно. Только вот теперь нужно Убрать все мелкие области. Но функция подсчета площади и вырисовывания только контуров с определенной площадью занимает очень уж много времени.

Еще у меня возник такой вопрос. По какому алгоритму ищутся контуры? Это для теории нужно.

Буду пытаться дальше, вдруг кому потом пригодиться что-то подобное. Кстати пока все на delphi делаю

Делаю так


while(current<>nil) do

  begin

              perim:=cvcontourArea(current,CV_WHOLE_SEQ);

             if perim<2 then

             begin

cvDrawContours(contourImage,current,CV_RGB(255,216,0),CV_RGB(0,0,0),StrToInt(Edit7.Text),StrToInt(Edit5.Text),StrToInt(Edit6.Text),CvGetPoint(0, 0));

             end;

        current := current.h_next;

  end;


Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Алгоритм используется отсюда :

Suzuki, S. and Abe, K., Topological Structural Analysis of Digitized Binary Images by Border Following. CVGIP 30 1, pp 32-46 (1985)

документации на многие функции есть ссылки на теорию, используемую для реализации функции )

По поводу убрать мелкие артефакты, это обычно морфологией делают (см. cvDilate и cvErode), сначала erode, затем dilate.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Привет всем) Вот и снова я вернулся. Смог я выделить слой стеблей процентов на 90 (мне этой точности за глаза).

post-6357-0-06797400-1364235646_thumb.jp

Только вот теперь встала новая задача, определить угол наклона стеблей. Преобразование Хафа находит линии, но это очень долго, разрешение 4912 на 3264.

Есть конечно вариант взять несколько точек (штук 10) построить вокруг них окружность, взять все точки не черного цвета на окружности, построить прямые до этих точек от центра с условием, что на этой прямой только желтые точки, но не могу сообразить как это сделать. Т.е. как сделать - это алгоритм Брезенхема (только его нужно доработать, когда рисовать линию и круг проверять на цвет пикселя). Но ка быстро обработать такое изображение в голове не укладывается).

Кто-нибудь может подсказать как быстро пробежать по такому изображению? И еще, такой вопрос. Ну нарисую я эти линии, а как определить угол относительно оси Х или У?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В сторону Фурье не смотрели?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В сторону Фурье не смотрели?

Нет, но сейчас почитал. Можно попробовать. Думаю вполне реально использовать. Только вот я все еще это на delphi пишу)) Так, что камушков подводных тьма тут))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Есть fftw она dll-ковая, и, насколько я помню, не так заплюсована.

Вот еще про дельфи:

http://www.fftw.org/install/fftw_usage_from_delphi.txt

http://forum.algolist.ru/source-implementation-programm/234-bystroe-umnojenie-na-delfi.html

http://www.delphikingdom.com/asp/answer.asp?IDAnswer=68987

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Привет всем. Извиняюсь, что исчез на пару месяцев мучился с дипломом.

В итоге у меня все получилось. Сделал почти все, что планировалось.

Вот результаты.

исходное

post-6357-0-15904000-1369208452_thumb.jp

результат

post-6357-0-11981400-1369208449_thumb.jp

Еще при помощи преобразования Хафа была найдена угловая дезориентация между стеблями.

Только вот осталось определить диаметры этих стеблей, но это наверное уже позже если буду дальше учиться или не я вообще буду делать))

Спасибо большое форуму, а особенно Smorodov

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×