PIL.show()は、一時ファイルに保存した後に画像を表示するための外部プログラムを呼び出し、GNOME画像ビューアやiPrintのノートブックを使用している場合はインラインmatplotlibでもかまいません。
ここでは、ドキュメントPILから収集したところから、これを行う唯一の方法はos.system()コールまたはサブプロセス呼び出しによってpkill
を行うことです。
ですから、このような何かにあなたのプログラムを変更することができます:
import os
def show_images(directory):
for filename in os.listdir(directory):
path = directory + "/" + filename
im = Image.open(path)
im.show()
os.system('pkill eog') #if you use GNOME Viewer
im.close()
time.sleep(5)
あなたが独占的にPILを使用する必要がない場合は、あなたが説明するように、表示のためにこのようなmatplotlibのようなその他のライブラリに切り替えてみてくださいすることができますここで()などplot.closeなどの単純な呼び出しはライブラリがあなたのための問題ではない場合の図に
import matplotlib.pyplot as plt
def show_images(directory):
for filename in os.listdir(directory):
path = directory + "/" + filename
im = Image.open(path)
plt.imshow(im)
plt.show()
plt.clf() #will make the plot window empty
im.close()
time.sleep(5)
をクリアする姿を閉じ、plot.clear()しますMatplotlib、あなたが試すことあなたがcv2.waitKey(0)を使ってイメージをsowに入れられる 'cv2'ライブラリ譲歩。 – Giridhur
PILは外部ビューアプログラムを呼び出して画像を表示します。どちらがあなたのために使用していますか?おそらく 'display'か' xv'です。これらはあなたのシステムとあなたのPATHで利用可能ですか? –
PILの '.show'メソッドは、開発者がコードを書いている間に画像を見ることを可能にする便利な機能であり、ユーザに画像を表示するために使用されることは意図されていません。あなたのプログラムが画像表示を制御する必要がある場合は、GUIフレームワークを使用する必要があります。これはTkinterで行うのは簡単です。 –