1 cv2.imshow() 在指定窗口显示图像
作用:该函数将图像在特定的窗口进行显示。如果该窗口是利用cv::WINDOW_AUTOSIZE标志创建的,则会使用图像的原始分辨率进行显示,然而会受限于屏幕的分辨率。也就是如果图像大于屏幕的分辨率,则无法完整的查看了。
语法格式:cv2.imshow(winname, mat)
参数说明:
- winname 窗口名。如果窗口名为winname的窗口不存在,则自动创建窗口
- mat 要显示的图像数据矩阵
2 cv2.moveWindow() 移动窗口
作用:该函数的作用是将窗口放到指定的位置去
语法格式:cv2.moveWindow(winname, x, y)
参数说明:
- winname 窗口名
- x、y 指窗口的左上角在屏幕的坐标
3 cv2.namedWindow() 命名窗口
作用:创建窗口。如果已经存在相同的窗口名称之后,该函数将会不做任何事情。
语法格式:cv2
.namedWindow( winname
[, flags
])
参数:
- winname 窗口名
- flags 标志位,如下:
- cv2.WINDOW_NORMAL: 使得你能够改变窗口的尺寸
- cv2.WINDOW_AUTOSIZE: 会自适应图像的尺寸(默认)。
- 上面2个参数可以分别用0,1代替。
4 cv2.waitkey() 等待函数
语法格式:cv2
.waitkey(delay)
参数说明:delay 延时的时间。单位ms。
返回值:若在给定延时内有按键触发,则返回键值。没有键盘输入,则返回-1.
作用:cv2.waitKey()是一个键盘绑定函数。它的时间量度是毫秒ms。函数会等待(delay)毫秒,看是否有键盘输入。若有键盘输入,则返回按键的ASCII值。没有键盘输入,则返回-1.一般设置为0,它将无限等待键盘的输入。
- 一般在 imshow 的时候 , 如果设置 waitKey(0) , 代表按任意键继续。
- 显示视频时,延迟时间需要设置为 大于0的参数。delay > 0时 , 延迟 ”delay”ms , 在显示视频时这个函数是有用的 , 用于设置在显示完一帧图像后程序等待 ”delay”ms 再显示下一帧视频 ; 如果使用 waitKey(0) 则只会显示第一帧视频
5 cv2.destroyAllWindows() 删除图像显示窗口
语法格式:cv2.destroyAllWindows([winname])
参数说明:
- winname 窗口名。不指定任何参数,则删除所有窗口;指定参数,则删除特定的窗口winname。
6 示例
import cv2
import matplotlib.pyplot as plt
import numpy as npimg = cv2.imread('C:\\Users\\xxx\\Downloads\\lena.jpg') # 彩色图
img1 = cv2.imread('C:\\Users\\xxx\\Downloads\\lena.jpg',cv2.IMREAD_GRAYSCALE) #灰度图
cv2.namedWindow('picture1',0) #创建一个能改变大小的窗口
cv2.imshow('picture',img) #显示图像,窗口不存在,就自动创建
cv2.imshow('picture1',img1) #显示图像,在已存在的窗口
cv2.waitKey(0) #按任意键
cv2.moveWindow('picture',0,0) # 将窗口移动至屏幕左上方
cv2.waitKey(0) #按任意键
cv2.destroyAllWindows() #删除所有窗口
运行结果如下:
- 会在屏幕上显示两张图像,一个是灰度图(窗口名为picture1, 预先创建的窗口,可改变窗口的大小),一个是彩色图(窗口名为picture,自动创建的,不能改变窗口的大小)
- 按任意键后,彩色图的窗口移动到屏幕的左上角(0,0)处
- 再任意键后,显示窗口全部被删除