2016-03-27 25 views
1

skimageをPythonで使用してRGB画像をグレースケールに変換しようとしています。私がしていることは次のとおりです。PythonでRGB画像をグレースケールに変換する

for im_path in glob.glob(os.path.join(pos_raw, "*")): 
    im = imread(im_path) 
    im = color.rgb2gray(im) 
    image_name = os.path.split(im_path)[1].split(".")[0] + ".pgm" 
    image_path = os.path.join(pos_img_path, image_name) 
    imwrite(image_path, im) 

画像ファイルの束。 私の入力画像は、次のようになります

Color image

、出力画像は、次のようになります

Black image

期待される出力がこれです:

Gray image

何ここで問題になることができますか?

+0

これを小さな部分に分割しましたか?たとえば、イメージが正しく読み込まれて保存されていることを知っていますか?グレースケールに変換されるコードは上手く見えますが、ファイルの読み書きセクションをチェックします。 (私は実際には「scikit-image」に精通しておらず、一般的な助言をしています) –

+0

解決策を回答として投稿し、他の人の将来の参考になるようにしてください。うれしい私は助けた。 –

+1

あなたのコードは私にとってうまく動作し、画像のグレースケールバージョンを出力します。しかし、私は 'imwrite'の代わりに' imsave'を使用する必要がありました – mfitzp

答えて

4

問題は対照的でした。

イメージを印刷して、値がすべて0に近いことを確認しました。私は、それを機能させるループで0〜255のコントラストを引き伸ばすために小さな線を導入しました。 rescale_intensityskimage.exposureから輸入された

im = rescale_intensity(im, out_range=(0, 255)) 

関連する問題