Ich mache ein Projekt zur Erkennung von Pflanzenkrankheiten. Ich muss erkrankte Teile aus Bildern von Blättern extrahieren, aber ich bin nicht in der Lage, kranke Regionen mit k-Mitteln genau zu trennen. Insbesondere ist der Rest des Blattes auf dem Bild sichtbar, wobei die erkrankten Teile segmentiert sind. Hier ist das Original-Bild und Bild nach der erkrankten Teile zu extrahieren: original imageimage after separating diseased partsSo erhalten Sie genaue Cluster mit k-Means-Clustering in Matlab
Hier ist der Code, den ich geschrieben habe
b=imread('12.jpeg');
G=fspecial('gaussian',[200 250],1);
Ig=imfilter(b,G,'same');
figure,imshow(Ig);
conversionform = makecform('srgb2lab');
lab_img = applycform(Ig,conversionform);
figure,imshow(lab_img);
ab = double(lab_img(:,:,2:3));
nrows = size(ab,1);
ncols = size(ab,2);
ab = reshape(ab,nrows*ncols,2);
nColors = 2;
[cluster_idx, cluster_center] = kmeans(ab,nColors,'distance','sqEuclidean', ...,
'Replicates',3);
pixel_labels = reshape(cluster_idx,nrows,ncols);
figure, imshow(pixel_labels,[]), title('image labeled by cluster index');
segmented_images = cell(1,3);
rgb_label = repmat(pixel_labels,[1 1 3]);
for k = 1:nColors
color = lab_img;
color(rgb_label ~= k) = 0;
segmented_images{k} = color;
end
figure, imshow(segmented_images{1}), title('objects in cluster 1');
figure, imshow(segmented_images{2}), title('objects in cluster 2');
e=segmented_images{1};
figure,imshow(e);
conversionform = makecform('lab2srgb');
new_image=applycform(e,conversionform);
figure,imshow(new_image);
Ich möchte nur die erkrankten Regionen extrahieren unter Verwendung von K bedeutet Clustering. Ich wäre dankbar, wenn mir jemand dabei helfen könnte. Ich benutze Matlab 2009a. Hier
Warum wählen Sie eine Größe '[200 250]' für den Anfangsfilter mit der Einheit Sigma? Kennen Sie "imgaussfilt"? Warum segmentieren Sie mit nur zwei Farben? Weißt du, dass dein Code keinen einzigen Kommentar enthält? Könnten Sie bitte das Originalbild alleine posten, damit wir Ihre Ergebnisse reproduzieren können? – Sheljohn
@ Sh3ljohn Ich habe das Originalbild alleine gepostet. – Kashish
Markieren Sie den Post unten als die Antwort, wenn das Ihre Frage beantwortet. – Sheljohn