2017-08-01 19 views
0

私はMatlabを自習/探検しています。 私はいくつかの基本的な画像の操作と分析を行っています。画像から倍精度に変換するMatlab

私が次のチュートリアルでは、RGBイメージをLaBカラースペースに変換します。

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

この時点まではすべて正常に動作します。次のステップは、k平均クラスタリングを使用してa b色空間内の色を分類することである。これは、提供されたコードスニペットた=:。

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

誰かがダブル()関数に渡されているものを私に説明できますか? lab_he(:、:、2:3)パラメータ/関数は何をしていますか?私はそれが何かを倍精度値に変換していることを理解しています。私はただ何が変換されているのか分かりません。 https://www.mathworks.com/help/images/examples/color-based-segmentation-using-k-means-clustering.html

+0

「ab = lab_he(:、:、2:3);」というようにdoubleに変換しないとどうなりますか? – m7913d

+3

[** 'colon' **](https://www.mathworks.com/help/matlab/ref/colon.html)のドキュメントを参照してください –

+0

うわー、おそらく最初にそこを見ていたはずです。ありがとう! – Mark

答えて

0

チュートリアルによると、lab_he変数はapplycform機能で作成された:ここでは

は、私は、次の午前のチュートリアルです。 documentationによれば、この関数は3つの値に渡されます。したがって、二重関数は、クラスサポートのためのベクトルの2番目から3番目のスペースだけでなく、heおよびcformパラメータも受け取ります。あなたのプロジェクトに幸運を祈る!

ハイパーリンクを修正するために編集されました。

関連する問題