1

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

enter image description here

Использование цвета сегментации и анализа блоб я получил контур участка изображения , Чтобы найти побеги на контурных графиках, я использовал преобразования Хью, но они в конечном итоге дают несколько ложных срабатываний. Я попытался настроить параметры обеих линий и пиков Hough, но это либо приводит к нескольким ложным срабатываниям, либо ложным негативам для разных изображений. Вот фрагмент кода

[H,theta,rho] = hough(BW,'Theta',-90:1:89,'rhoResolution',1); 
P = houghpeaks(H,100,'threshold',ceil(0.3*max(H(:))),'NhoodSize',[21 21]); 
lines = houghlines(BW,theta,rho,P,'FillGap',15,'MinLength',100); 

Это выход я получаю: enter image description here

может какой-то момент мне лучший способ сделать это?

+0

Как Вы клонируете цвет? Я предполагаю, что сейчас вы на пороге канала G. Похоже, у вас есть белые лепестки, которые остались на вашем изображении. Вероятно, вы можете избавиться от них путем фильтрации для областей, где G больше R и B некоторой (экспериментально определенной) суммой. Это может немного помочь. –

+0

Да. Сейчас мы используем пороговое значение для канала R. Но желаемые побеги также зеленые похожи на листья. Поэтому сегментации там было бы невозможно. – Harjatin

ответ

0

У меня была идея, но мне слишком долго бросать ее в комментарий.

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

1 1 -1 -1 -1 
-1 1 1 1 -1 
-1 -1 -1 1 1 

... а также зеркальное отражение его. Очевидно, вам нужно немного поиграть с ним. Вы можете добавить некоторое сглаживание в маску, чтобы у него было больше терпимости к вещам, которые не совсем прямые. Принцип, однако, состоит в том, что маска поэтапно умножается на субимаж, содержащий данный компонент. Сумма всех элементов в полученной матрице дает вам оценку, которая сообщает вам, как выглядит строка. Если вы используете маску с переменным размером, вам также необходимо как-то нормализовать баллы. Это может привести к сбою на линиях, параллельных осям, но их достаточно легко проверить, потому что ограничивающая рамка для компонента будет длинной и тонкой.

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