10

chciałbym wiedzieć o czymś, co wykryje wszystkie zielone gałęzie z poniższego obrazkawykryć wszystkie oddziały w obrazie roślinnej

enter image description here

Obecnie zaczynam z nałożeniem Frangi filtrować

options=struct('FrangiScaleRange', [5 5], 'FrangiScaleRatio', 1, 'FrangiBetaOne', 1,... 
'FrangiBetaTwo', 7, 'verbose',true,'BlackWhite',true); 
[outIm,whatScale,Direction] = FrangiFilter2D(double(img), options); 

wyjście filtru Frangi jest następujący

enter image description here

tym następuje Hough Transform wykryć wszystkie linie

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

wyjście jest ten

enter image description here

Wszelkie prowadzi na co mogę spróbować oprócz tych technik?

+4

Jeśli chcesz zielone gałęzie, musisz wybrać gwiazdy za pomocą progu koloru, aby wykryć zielone części. A następnie można zastosować filtr i transformację hough. – FiReTiTi

+1

To był mój pierwszy krok. Nie wspomniałem o tym, ponieważ było to oczywiste. – Harjatin

+4

Nie tak oczywiste, ponieważ filtr Frangi daje również kontur brązowych gałęzi. Próg nie powiódł się. – FiReTiTi

Odpowiedz

1

Do segmentowania zielonych gałęzi można użyć opartego na kolorach modelu gaussowskiego (GMM). Dopasuj 2 modele GMM 1 dla zielonych gałęzi i 2 dla pozostałych obiektów na obrazie. Ale aby zainicjować, trzeba najpierw zaznaczyć kilka mannualnych bazgrołów, aby poznać GMM, jak wyglądają gałęzie i inne. Po dopasowaniu obu modeli GMM w oparciu o bazgroły, możesz znaleźć prawdopodobieństwo wszystkich pikseli dla obu modeli GMM, a na podstawie tego podzielisz swój w dwóch regionach oddziału i nie oddziału. Oznaczenie literkami powinno pokrywać większość zmian koloru obrazu.

+1

Czy chcesz zasugerować użycie klastrowania GMM do segmentacji między zielonymi liśćmi a pędami? Jeśli tak, czy masz jakiś przykładowy kod, w którym zastosowano tę technikę? – Harjatin