2016-12-09 77 views
1

Iは、以下のコードを有する:imwriteを使用して保存されるイメージが黒くなるのはなぜですか?

grayImage=imread('coins.png'); 
edgeImageD = double(grayImage) - double(imdilate(grayImage,SE_3)); 
OutputFileName = ['./output_images/' 'coins _edge.png']; 

    imwrite((edgeImageD),OutputFileName); 
figure,imshow(edgeImageD, []),title('dilation'); 

を出力画像は、エッジを有しているが、私は、関数imwriteを(使用して保存した場合)には、ブラックなります。私が間違っていることを教えてください。

答えて

2

doubleイメージを保存する場合、すべての値を0から1の間で(おそらくmat2grayを使用して)整える必要があります。

imwrite(mat2gray(edgeImageD), OutputFileName) 

Aは、グレースケールまたは二重又は単一のデータタイプのRGBカラー画像である場合、関数imwriteは、ダイナミックレンジであることを前提として[0,1]と、自動的にそれを書き込む前に、255によってデータをスケーリングファイルを8ビットの値として保存します。 Aのデータが単一の場合、GIFまたはTIFFファイルに書き込む前にAをdoubleに変換します。

+0

ありがとう – cranberry

関連する問題