为什么python PIL不能在一个程序中显示两个图像

coi*_*ung 5 python python-imaging-library

这是我的代码:

img = Image.open('data/img.jpg')
lb = Image.open('data/label.png')
img.show('img')
img.close()
lb.show('lb')
lb.close()
Run Code Online (Sandbox Code Playgroud)

运行这个程序后,第一张图像成功显示,但第二张图像不会显示,除非我注释与第一张图像相关的代码。这个问题的原因是什么。

Mar*_*ell 5

您可以多线程同时显示两者:

#!/usr/local/bin/python3

from PIL import Image
from threading import Thread

def display(im):
    im.show()

im1 = Image.open('1.jpg')
im2 = Image.open('2.jpg')
t1=Thread(target=display,args=(im1,))
t1.start()
t2=Thread(target=display,args=(im2,))
t2.start()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明


或者您可以暂时将图像连接成一个:

#!/usr/local/bin/python3

from PIL import Image
import numpy as np

im1 = Image.open('1.jpg')
im2 = Image.open('2.jpg')

Image.fromarray(np.hstack((np.array(im1),np.array(im2)))).show()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明