2017-05-20 11 views
0

誰かが私を助けてくれます。私は一度に1つのフォルダのRGBイメージをグレースケールに変換したいと思います。私はいくつかのPythonコードを探してきましたが、何も見つかりませんでした。私は次のようにしてみたが、うまくいかなかった。1つのフォルダの複数のRGBイメージをPythonのグレースケールに変換する方法

は、ここに私のコードです:

from skimage.color import rgb2gray 
from skimage.io import imread, imsave 
from skimage.filters import threshold_otsu 
from skimage import img_as_uint 

inp_image = imread("C:/RGB/*.JPG") 
img_gray = rgb2gray(inp_image) 

thresh = threshold_otsu(img_gray) 
binary_thresh_img = img_gray & gt; thresh 

imsave("C:/Grayscale", img_as_uint(binary_thresh_img)) 

そして、それは私に次のエラーました:

OSError: [Errno 22] Invalid argument: 'C:/RGB/*.JPG'

+0

あなたはに' 'Cを通じてwalk'を必要としています。感嘆符は、「あなたは 'os.walk'を使うことができる」という意味です。 – ForceBru

+0

あなたがPythonのスキルを練習しているかどうかは分かりません(それは価値ある原因です)。後者の場合、コマンドラインから(ファイルをバックアップした後)コマンドラインから 'ImageMagick'を' mogrify -colorspace gray * .jpg'だけ使い、コーディングせずにすべて完了させることができます。 –

答えて

1

あなたは​​3210とファイル名のリストを取得することができます。

import glob 
for filename in glob.glob("C:/RGB/*.JPG"): 
    inp_image = imread(filename) 
    [...] 

完全なコードは:(!):/ RGB/`ディレクトリや画像ファイルを取得

import glob 
from skimage.color import rgb2gray 
from skimage.io import imread, imsave 
from skimage.filters import threshold_otsu 
from skimage import img_as_uint 

for filename in glob.glob("C:/RGB/*.JPG"): 
    inp_image = imread(filename) 
    img_gray = rgb2gray(inp_image) 

    thresh = threshold_otsu(img_gray) 
    binary_thresh_img = img_gray & gt; thresh 

    imsave("C:/Grayscale", img_as_uint(binary_thresh_img)) 
+0

本当に助けてくれて本当にありがとうございました。正直言って、私はPythonの画像処理ではとても新しいです。 – Vosco

関連する問題