2017-08-01 2 views
0

Ich bin selbst Lehre/Erforschung Matlab. Ich arbeite an grundlegenden Bildmanipulationen und Analysen.Matlab Convert in Double Precision von Bild

Das Tutorial, das ich befolge, konvertiert ein RGB-Bild in den LaB-Farbraum.

RGB = imread('Images/cow.jpg'); 
    cform = makecform('srgb2lab'); 
    lab_he = applycform(RGB,cform); 
    imshow(lab_he); 

Alles funktioniert gut bis zu diesem Punkt. Der nächste Schritt besteht darin, die Farben im a b Farbraum unter Verwendung von k-Means Clustering zu klassifizieren. Dies wurde der Code-Schnipsel zur Verfügung gestellt =.

ab = double(lab_he(:,:,2:3)); 
nrows = size(ab,1); 
ncols = size(ab,2); 
ab = reshape(ab,nrows*ncols,2); 
nColors = 3; 

Kann mir jemand erklären, was mit dem Doppel() Funktion übergeben wird? Was macht lab_he (:,:, 2: 3)? Ich stelle fest, dass es etwas in einen doppelten Präzisionswert umwandelt. Ich weiß einfach nicht, was konvertiert wird. Hier

ist das Tutorial Ich verfolge: https://www.mathworks.com/help/images/examples/color-based-segmentation-using-k-means-clustering.html

+0

Was passiert, wenn Sie es nicht in double konvertieren, z. B. 'ab = lab_he (:,:, 2: 3);'? – m7913d

+3

Siehe die Dokumentation von [** "Doppelpunkt" **] (https://www.mathworks.com/help/matlab/ref/colon.html) –

+0

Wow, sollte wahrscheinlich zuerst dort zuerst gesucht haben. Vielen Dank! – Mark

Antwort

0

Nach dem Tutorial, die lab_he Variable wurde mit der applycform Funktion erstellt. Gemäß der documentation wird diese Funktion an bis zu drei Werte übergeben. Die Doppelfunktion empfängt also die Parameter he und cform sowie die zweiten bis dritten Leerzeichen eines Vektors zur Klassenunterstützung. Viel Glück mit Ihrem Projekt!

Bearbeitet, um Hyperlink zu reparieren.