2017-04-03 16 views
-1

können Sie sowohl den Oberflächenbereich als auch einen bestimmten Bereich in einem Bild verfolgen und glätten. Ich habe ein Bild mit je 6 Farben, die einen Wert angeben. Ich hatte ein Bild wie unten gezeigt erhalten.Mit MATLAB

Original image

Ich brauche die Kanten zu glätten und dann den Bereich sowie die Oberfläche dieser Region erfahren. Das zweite Bild zeigt eine schwarze Linie in den Kanten, die anzeigt, dass ich die Kanten auf diese Weise glätten muss.

New Image

hatte ich Segmentierung verwendet, um eine Maske zu erzeugen, wie im dritten Bild gezeigt, und erhält dann eine segmentierte Bild nach dem Bild mit dem Code.

Masked image

Ich habe den folgenden Code zur Erzeugung bis zum maskierten Bild verwendet. Quelle: How to segment

imshow(Out1) 
str = 'Click to select initial contour location. Double-click to confirm and proceed.'; 
title(str,'Color','b','FontSize',12); 
disp(sprintf('\nNote: Click close to object boundaries for more accurate result.')); 
mask = roipoly; 
figure, imshow(mask) 
title('Initial MASK'); 
maxIterations = 3000; 
bw = activecontour(Out1, mask, maxIterations, 'Chan-Vese'); 

% Display segmented image 
figure, imshow(bw) 
title('Segmented Image'); 

Um braucht die ‚activecontour‘ -Funktion mein Bild zu verwenden ein Graustufenbild zu sein, was ich bin nicht und zurück in Graustufen umwandeln zu können. Auch um die Oberfläche/Fläche der Region herauszufinden, gibt es eine eingebaute Funktion. Bitte helfen Sie, danke.

Antwort