10

我想知道的東西,將檢測從下面的圖片檢測所有分支在工廠畫面

enter image description here

目前,我開始將所有的綠色樹枝的FRANGI過濾

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

FRANGI濾波器的輸出如下

enter image description here

其次是Hough變換來檢測所有的線

[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); 

輸出是這

enter image description here

什麼我可以從這些技術試圖分開任何線索?

+4

如果你想要綠色的樹枝,那麼你需要通過顏色閾值星星來檢測綠色部分。然後,您可以應用濾鏡和hough變換。 – FiReTiTi

+1

這是我的第一步。我沒有提到它,因爲它很明顯 – Harjatin

+4

不是很明顯,因爲Frangi過濾器也給出了棕色的樹枝輪廓。所以閾值失敗。 – FiReTiTi

回答

1

您可以使用基於顏色的高斯混合模型(GMM)分割出綠色分支。將2個GMM模型適用於綠色分支,其餘爲圖像中的其他對象。但要初始化,你必須首先標記一些mannual塗鴉,使GMM知道分支和其他樣子。在根據塗鴉對兩個GMM模型進行擬合之後,您可以找到兩個GMM模型的所有像素的可能性,並根據這個可能性將您分爲兩個區域分支和非分支。塗鴉的標記應該覆蓋圖像中的大部分顏色變化。

+1

您的意思是建議使用GMM聚類來分割綠葉和芽?如果是,那麼在使用這種技術時你是否有某種樣本代碼? – Harjatin