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

1-4 显示图像与关闭图像窗口

OpenCV提供了几个与显示图像有关的函数,下面将一一解说。

1-4-1 使用OpenCV显示图像

OpenCV可以使用 cv2.imshow( ) 将读取的图像对象显示在OpenCV窗口内,此函数的使用格式如下:

     cv2.imshow(window_name, image)

window_name :要显示的窗口标题名称。

image :要显示的 图像对象

上述 imshow( ) 函数实际上是执行下列两个步骤:

(1)建立标题是window_name的窗口,所建立的窗口无法更改大小。

(2)将image图像对象在window_name窗口显示。

程序实例 ch1_2.py: 显示图像。

执行结果

如果要关闭上述图像窗口,可以单击右上方的 关闭按钮

1-4-2 关闭OpenCV窗口

将图像显示在OpenCV窗口后,若想关闭窗口,除了单击“关闭”按钮,还可以使用下列函数。

     cv2.destroyWindow(window_name)       # 删除单一所指定的窗口
     cv2.destroyAllWindows( )          # 删除所有OpenCV的图像窗口

程序实例 ch1_3.py: 图像闪一下随即关闭的应用。

执行结果 图像闪一下随即关闭。

上述第5行代码显示图像,第6行代码关闭图像,所以造成图像闪一下随即关闭。

1-4-3 等待按键的事件

OpenCV的cv2.waitKey( )函数会等待按键事件,语法如下:

     ret_key = cv2.waitKey(delay)

ret_key :返回值,如果在指定时间内没有按下键盘的键,则返回值是-1。如果按下键盘的键,则返回值是按键的ASCII码。常用于检测键盘按键,对应的ASCII码值如下:

     Enter:13    Esc:27    Backspace:8    Space:32

delay :单位是毫秒,每1000毫秒等于1秒。

使用OpenCV显示图像时可以使用cv2.waitKey(delay)设定图像显示的时间,或是在显示时间内按键盘上的任意键,也可以让cv2.waitKey( )函数执行结束。 delay=0 或省略,代表无限期等待。delay=1000相当于等待1秒。

程序实例 ch1_4.py: 让图像持续显示,直到按下键盘上任意键。

执行结果 这个程序会持续显示jk.jpg,直到按下键盘上任意键。

程序实例 ch1_5.py: 让图像显示5秒或按键盘上任意键后列出waitKey( )函数的返回值。

执行结果 图像显示结果可以参考ch1_2.py。下方左图是等待5秒且没有按键发生的Python Shell窗口结果,下方右图是直接按键盘E键的结果。

:执行此程序时,需要设置系统为 英文输入 模式,如果输入是一般键盘键,可以使用ret_value == ord(key)判断是否按了特定的键盘字符。

程序实例 ch1_5_1.py: 让图像持续显示,直到按下键盘的 Q 键。

执行结果 这个程序会持续显示jk.jpg,直到按下 Q 键。

1-4-4 建立OpenCV图像窗口

使用OpenCV的 imshow( ) 函数显示图像时,系统默认会建立一个图像窗口,所建立的图像窗口大小是固定的,无法更改。不过OpenCV也有提供 namedWindow( ) 函数建立未来要显示图像的窗口,它的语法如下:

     cv2.namedWindow(window_name, flag)

window_name :未来要显示的窗口名称。

flag 窗口旗标参数 ,可能值如下。

WINDOW_NORMAL :如果设定,用户可以自行调整窗口大小。

WINDOW_AUTOSIZE :系统将依图像调整窗口大小,用户无法调整窗口大小。

WINDOW_OPENGL :将以OpenGL支持方式打开窗口。

程序实例 ch1_6.py: 以彩色和灰度显示图像,其中彩色的OpenCV窗口无法调整窗口大小,灰度的OpenCV窗口可以调整窗口大小。同时分别使用1-4-2节所述的destroyWindow( )和destroyAllWindows( )函数关闭窗口。

执行结果 下列右边窗口可以重设大小。

上述程序第6行, cv2.IMREAD_GRAYSCALE 也可以用0代替,读者可以参考ch1_6_1.py,可以获得一样的结果。 T2Xp8SgzNSegNx1DKRgCu4E9wos9nZqTtOp7YmWZSYjKCZGb5bavMYBmKGEIBySH

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