购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.4 图像显示

1.4.1 待处理图像的显示

仿真系统的图像有三种来源,分别是系统自带的测试图像、用户自行选择的图像文件、打开摄像头拍摄的图像。针对这三种不同来源的图像,需要分别编写代码进行图像显示,而且将它们布局在相同的位置。

系统自带的测试图像是指定的文件,文件名为“sucai.jpg”;而用户选择的图像文件或者打开摄像头拍摄的图像,指定存储为“save.jpg”文件名。这里定义了全局变量sFilePath来存储左端待处理的文件名称,给定初值为‘start’。

如果sFilePath==‘start’,使用系统指定图片“sucai.jpg”进行处理;

如果sFilePath !=‘start’,使用用户选择的图像文件或打开摄像头拍摄的图像进行处理。

1.系统自带测试图像的显示

若设置系统为一启动就自带测试图像,并允许各种算法对系统进行测试,则系统一启动就在界面的左右两侧显示图片,参见图1-26。

实现步骤:

(1)导入模块。

代码如下:

其中,tkinter是Python自带的图形界面库;PIL是Python中用于图像处理的第三方库;ImageTk是Python中用于图像处理的一个模块,它可以实现图像的加载、显示、裁剪、旋转等操作,非常适用于计算机视觉、图形学等领域。使用ImageTk可以轻松地实现Python程序中的图像处理,并且可以与Tkinter等库进行无缝集成。

(2)使用Image.open()方法加载一张图片到内存中,并用ImageTk.PhotoImage()方法将其转换成可显示的图像对象。

代码如下:

(3)借助tkinter中的Label组件将图像显示在界面上,代码如下:

总之,需要先创建一个窗口对象,再创建一个Label对象,通过image参数将其与刚刚创建的图像对象关联起来,最后将标签对象放置到窗口中,并启动窗口事件循环。

2.用户选择图像文件的显示

首先通过建立文件菜单,在【打开图像】子菜单项指定消息响应函数open_image()来打开一个图像文件,代码如下:

打开图片的消息响应函数open_image()代码如下。

编程代码

3.打开摄像头拍摄图像的显示

首先通过文件菜单,在【打开摄像头】子菜单项指定消息响应函数open_camera()来拍摄一幅图像,代码如下:

打开摄像头拍摄图像的消息响应函数open_camera()代码如下。

编程代码

1.4.2 处理后图像的显示

该集成系统在界面右侧显示处理之后的图像。用户对已有的测试图像、选择的图像文件或者打开摄像头拍摄的图像,选择某一个子菜单项进行处理,该子菜单项会应用算法进行图像处理,并将处理后的图像存储为指定的文件名称,这里指定文件名称为result.jpg。然后单击【运行】按钮,就会在界面的右侧显示处理后的图片。

指定全局变量img_label_r在右侧显示图片。

在界面右边显示图片代码如下:

其次,该集成系统将各个算法完成图像处理之后,存储为result.jpg文件。

最后,用户单击【运行】按钮,调用按钮响应函数start(),由start()函数将处理之后的图像在界面右侧显示。 Z9Vn3uL1ApDMV4/CXn1hnEHZEY5Q6MB7N7kpRK1hnU4R2Nby0vpWxQ3omLXwpqjl

点击中间区域
呼出菜单
上一章
目录
下一章
×