OpenCV4-python 学习笔记 之 openCV入门
阅读原文时间:2021年04月20日阅读:1

1 读取图像

cv提供cv2.imread()来读取图像,其语法格式为

img = cv2.imread(filename,flags)

(1) . 其中img为返回值,其值为读取到的图像,若未读取到图像,则会返回None
(2) . filename为要读取的图像的完整文件名,可以为绝对路径形如 : r"D:\anaconda\opencv\img.jpg" ; 也可以为相对路径,形如"img.jpg"
(3) . flags为读取标记,该标记用来控制读取文件的类型其具体参数如下(其中第一列参数与第三列等价) :

另外,在显示图像时,初学者最经常遇到的一个错误是「error:(-215:Assertion failed)size.width>0&& size.height>0 in function ‘cv::imshow’」,说明当前要显示的图像是空的(None),这通常是由于在读取文件时没有找到图像文件造成的。
如遇到此类问题则请检查图像路径是否正确

2 显示图像

2.1 namedWindow 函数

函数cv2.namedWindow()用来创建指定名称的窗口,其语法格式为 :

cv2.namedWindow(winname) 

(1) . 其中winname为创建窗口的名称(需要加" ")
(2) . 无返回值

2.2 imshow 函数(常用)

其语法格式为 :

cv2.imshow(winname,mat)

(1) . winname为窗口名称
(2) . mat为要显示的图像
(3) . 无返回值

2.3 waitKey()函数

函数waitKey()用来等待按键,当按键按下后该语句将被执行,并获取返回值。其语法格式为 :

retval = cv2.waitKey(delay)

(1) . retval为返回值。如果按键没有被按下,则返回-1,如果有按键按下则返回该按键的ASCII码值
(2) . delay表示等待按键触发的时间,单位ms。当该值为负数或0时表示无限等待,默认为0

在实际应用中可以通过函数cv2.waitKey()获取按下的按键并针对不同的按键做出不同的反应,从而实交互
另外python提供ord()函数来获取字符的ASCII码值,部分代码如下 :

key = cv2.waitKey()
if key == ord('A'):
    pass
if key == ord('B'):
    pass

从另一个角度理解,该函数还可以让程序实现暂停功能。当程序运行到该语句时会按照delay的设定等待特定时长。
(1) . 如果参数delay为0,则程序会一直等待,直到有按键按下时才会执行后续程序
(2) . 如果其为正数,则在这段时间内程序等待按下键盘按键。当按下键盘时则继续执行后续语句,实际其在while循环中可以作为帧率控制

2.4 destroyWindow()

其语法格式为

cv2.destroyWindow(winname)

(1) . winname为要关闭窗口的名称
如要释放所有窗口则可以使用cv2.destroyAllWindow()

3 保存图像

OpenCV提供cv2.imwrite()用来保存图像其语法格式为

retval = cv2.imwrite(filname,img,params)

(1) . retval 为返回值。如果保存成功则返回值为True反之则为False
(2) . filename为要保存的文件的完整路径,同上文cv2.imread()中的filename
(3) . img为保存图像的名称
(4) . params为可选参数,是保存类型的参数

本文参考自 : 李立宗《OpenCV轻松入门 : 面向Python》

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章