2012-04-27 5 views
0

kをしたいのは、1024 * 1024 * 3 .ppmファイルでクラスタリングすることを意味します。私はこのイメージのポイントが非常に低いことを認めなければなりません。今、私は、alteastのmatlabがそれを表示できるように、それをサイズ変更し、画像を読んでいます。次に、それを再構成してdoubleに変換するコード行です。これをinbuiltのmatlab kmeans関数に渡すことができます。kはクラスタリング入力を意味しますか?

img1 = imread('picture.ppm'); 
img= imresize(img1,0.15); 
imshow(img); 
imf = double(reshape(img,size(img,1)*size(img,2),size(img,3))); 
imf = imresize(imf,.15); 
[m,n,z]=size(imf) 

しかし、私は多くのエラーに遭遇しています。 1)ポイントの強度は非常に低いです。私がこれをした後:

私の写真のほとんどは白であり、強度の低い点が散在しています。他の方法でそれらの点の強度を上げることができますか?

2)さまざまなkmeansアルゴリズムの有効な入力として渡せるように、画像で何をしますか?黒点と赤点の2つのクラスターが必要です。

+0

補正画像は.ppm拡張です – simplycurious

答えて

1

K-meansでは、事前定義された基準に基づいて出力クラスタの構成を指定することはできません。あなたのポイントまでの距離を最小限にして重心を見つけようとします。通常、黒と赤に対応する開始点[0,0,0;1,0,0]を提供することができますが、最終重心が開始点に似ているという保証はありません。

先験的にの重心がどのように見えるかわかっている場合、k-meansは必要ありません。あなたのピクセルの各ピクセルと黒ピクセルと赤ピクセルとの距離を計算し、最小の距離を選んでください。

関連する問題