グレースケール画像(uint16)を白黒画像に変換したい。画像I以下グレースケール画像をBW画像に変換する
[level, ] = graythresh(I);
I_bw = im2bw(I, level);
私は画像I_bw結果は以下のようにすることが可能であるかを理解していませんgraythresh(I)を呼び出した後に0にします。
EDIT:元の画像を含む.matファイルをアップロードしました。
fileグレースケール画像(uint16)を白黒画像に変換したい。画像I以下グレースケール画像をBW画像に変換する
[level, ] = graythresh(I);
I_bw = im2bw(I, level);
私は画像I_bw結果は以下のようにすることが可能であるかを理解していませんgraythresh(I)を呼び出した後に0にします。
EDIT:元の画像を含む.matファイルをアップロードしました。
file理由は、レベル= 0
load Image.mat
I = z;
figure;imshow(I, []);
[level, ] = graythresh(I); %level = 0
I_bw = im2bw(I, level);
figure;imshow(I_bw);impixelinfo
次のコードは動作します
はdouble
にI
を変換し、[0、1]の範囲に正規化。
load Image.mat
I = z;
figure;imshow(I, []);
I = double(I)/double(max(I(:))); %Convert to double, and divide by maximum value - set range to [0, 1].
[level, ] = graythresh(I);
I_bw = im2bw(I, level);
figure;imshow(I_bw);impixelinfo
:
load Image.mat
I = z;
figure;imshow(I, []);
I = double(I)/double(max(I(:))); %Convert to double, and divide by maximum value - set range to [0, 1].
I = uint16(I*2^16-1); %Expand range to [0, 2^16-1] and convert to uint16.
[level, ] = graythresh(I);
I_bw = im2bw(I, level);
figure;imshow(I_bw);impixelinfo
は、元のコードでレベル= 0は、遠くの調査を必要とする理由を理解する...
@Alessandro私は自分の答えを更新しましたが、まだレベル= 0の理由は分かりません。 – Rotem
正解、ありがとうございます! – Alessandro
がありますあなたは正しい「私」を使用していると確信していますか?あなたが提供したイメージを使って私は '0.5137'のレベルを取得します:' I = imread( 'http://i.stack.imgur.com/Vch35.jpg'); level = graythresh(I); im2bw(I、レベル); ' – Suever
私は確信しています。私は生のものではなく.JPGのバージョンをアップロードしました。 .figファイルをアップロードできますか? – Alessandro
それでは、どうすれば何をテストできますか?作業している画像をアップロードしてください。 – Suever