2017-11-06 30 views
-2

私は次のPythonスクリプトを持っている:画像が表示されないのはなぜですか?

import os 
from PIL import Image 
import numpy 

path = '/my_path' 
for root, dirs, files in os.walk(path): 
    for file in files: 
     if file.startswith('first'): 
      img1 = numpy.asarray(Image.open(root + '/' + file)) 
     if file.startswith('second'): 
      img2 = numpy.asarray(Image.open(root + '/' + file)) 

    img1.show() 
    img2.show() 

私は、コードを実行すると、私は次を得る:

Traceback (most recent call last): 
    File "test.py", line 14, in <module> 
    img1.show() 
NameError: name 'img1' is not defined 

私は画像を表示することができ、私はimg1を読みたいという提供方法と最初img2

ありがとうございました。

+1

「first」で始まるものが何もない場合、img1は定義されず、img2でも同じです。 img1とimg2を定義した場所のすぐ下に置くべきではありませんか? – abccd

+0

また、img1とimg2は見つかった最後のイメージと同じになります。これは望ましくない動作だと思います。 – arielnmz

+0

'numpy'の' array'は 'show'メソッドを持たず、' img1'と 'img2'を'Image'によって開かれたイメージであり、' asarray'によって解析された配列ではありません。 – abccd

答えて

1

あなたは範囲の問題があると思います。トリックを行うべきである最初のforループの直後にimg1とimg2を初期化するならば。

関連する問題