Почему Python PIL не может показать два изображения в одной программе - PullRequest
0 голосов
/ 13 ноября 2018

Вот мой код:

img = Image.open('data/img.jpg')
lb = Image.open('data/label.png')
img.show('img')
img.close()
lb.show('lb')
lb.close()

После запуска этой программы первое изображение успешно отображается, но второе изображение не будет показано, пока я не прокомментирую код, связанный с первым изображением. В чем причина этой проблемы.

1 Ответ

0 голосов
/ 13 ноября 2018

Вы можете использовать многопоточность для одновременного отображения:

#!/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()

enter image description here


Или вы можете временно объединить изображения в одно:

#!/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()

enter image description here

...