2017-03-12 22 views
-1

私は比較的新しいmatlabです。私はいくつかの画像処理をしようとしています。適用することでMatlab - 画像認識 - 植物の葉の数を検出する

g1= im1(:,:,2); 
bw1= im2bw(g1); 
se=strel('disk',5); 
e1=imerode(bw1,se); 
bw1a=bwareaopen(e1,100); 
+0

あなたの体重の画像がRGB画像よりも良いではないので、あなたはそれを向上させることから始めることができるようです。 – smttsp

+1

[タグ:処理]タグは[処理:タグ]画像処理ではない言語用です。 –

答えて

0

は、これはあなたがやってここに役立つ可能性いくつかの資源であるべきであるものの基本的なアイデアを与える必要があります。

http://blogs.mathworks.com/steve/2013/11/19/watershed-transform-question-from-tech-support/ http://blog.pedro.si/2014/04/basic-cell-segmentation-in-matlab.html http://blogs.mathworks.com/steve/2006/06/02/cell-segmentation/

enter image description here

greenChannel = rawImage(:,:,2); 
binaryImage = im2bw(greenChannel); 
removeNoise = bwareaopen(binaryImage,1000); 

% apply distance transform to find watershed markers 
distanceImage = -bwdist(~removeNoise); 
distanceImage(~binaryImage) = -Inf; 
distanceImage = imhmin(distanceImage,0.9); 

% apply watershed transform to split binary blobs 
watershedImage = watershed(distanceImage); 

% label each blob with an index 
labelImage = bwlabel(watershedImage); 
% obtain data on each blob 
propsStruct = regionprops(logical(labelImage)); 
% add some color to the image 
watershedImage = label2rgb(watershedImage); 

figure 
hold on 
imshow(rawImage) 

for leafIndex = 1:length(propsStruct) 
    if propsStruct(leafIndex).Area > 2000 
     plot(propsStruct(leafIndex).Centroid(1) , propsStruct(leafIndex).Centroid(2) , 'ko') 
    end 
end