在python Image中可以用show()来显示图片,但是显示以后,下面的代码就不运行了,如何运行下面的代码

2024-12-23 00:36:29
推荐回答(2个)
回答1:

Image.show()函数是这个样子的,必须先关了图片程序才往下走。

不使用show,如imshow(BW)在 Matlab 7.0 中,二进制图像是一个逻辑类,仅包括 0 和 1 两个数值。像素 0 显示为黑色,像素 1 显示为白色。显示时,也可通过NOT(~)命令,对二进制图象进行取反,使数值 0 显示为白色;1 显示为黑色。

例如: imshow(~BW)

展资料:

不使用show函数来满足运行的需求:

import threading

import Image

class ThreadClass(threading.Thread):

def run(self):

im=Image.open('z.jpg')

im.show()

print (1)

t = ThreadClass()

t.start()

print (2)

a=input('End')

#===============================

图像的表示原理:

最基本的物理图像是根据矩形网格抽样原理从连续图像域中抽取二维灰度阵列(矩阵)得到的。也可以用长向量表示二维灰度矩阵,它是按列(或行)扫描灰度矩阵,把下一列(或行)的头和前一列(或行)的尾相接而成。

它们的线性可逆变换同样可以用来表示图像。图像的每一行由行程(具有同一灰度的邻近像元集合)序列所组成,因此也可以用行程长度编码(见图像编码)表示图像。

参考资料来源:百度百科-图象函数

参考资料来源:百度百科-图像表示

回答2:

Image.show()函数是这个样子的,必须先关了图片程序才往下走。
要实现你的需求,就必须变通了,你可以将show()写在进程里,通过调用进程来打开图片,那么进程的运行状态就不会影响到主程序的往下执行了,帮你写了个示例代码,供参考。
#===============================
import threading
import Image

class ThreadClass(threading.Thread):
def run(self):
im=Image.open('z.jpg')
im.show()

print (1)
t = ThreadClass()
t.start()
print (2)
a=input('End')
#===============================
运行结果为:先打印出‘1’,然后显示图片z.jpg,接着再不关闭图片的情况下打印出‘2’。
具体应用的时候你根据需要组织代码。

希望能对你有所帮助!