OpenCV 是计算机视觉中经典的专用库,其支持多语言、跨平台,功能强大。OpenCV-Python为OpenCV提供了Python接口,使得使用者在Python中能够调用C/C++,在保证易读性和运行效率的前提下,实现所需的功能。
一、安装
安装方法有多种,老猿机器上无C++环境,因此直接使用pip安装,OpenCV-Python模块名为opencv-python(在windows下大小写不敏感,其他操作系统没验证),具体安装命令如下:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python
二、加载OpenCV
导入OpenCV 模块指令很简单:
import cv2 as cv
大多数OpenCV 的函数都在cv2模块内,cv2并不是版本2.X的意思,而是因为这个版本是在原cv版本的基础上采用了面向对象编程的方式重新实现,提供了更好的API接口。
三、读取图像文件
3.1、语法:imread(filename,mode)
3.2、参数说明
- filename:图像文件名,不同操作系统支撑的文件类型不一样,但都支持bmp图像文件,另外可能还包括jpeg、png、tiff等格式文件
- mode:文件读入模式,常用有三种取值
- cv.IMREAD_COLOR: 对应值为1,加载彩色图像。任何图像的透明度都会被忽视。它是默认标志。
- cv.IMREAD_GRAYSCALE:对应值为0,以灰度模式加载图
- cv.IMREAD_UNCHANGED:对应值为-1,加载图像,包括alpha通道;
注意:除了这三个常用取值,还可以有多个取值,相关取值及含义如下:
![c18e76d2f0e065204cd774f5b345d60d.png](https://i-blog.csdnimg.cn/blog_migrate/070f126ad507b2726db0711f133cbc5e.jpeg)
3.3 返回值说明
imread返回一个BGR格式的图像对象,其类型为一个numpy数组。
3.4、案例
img = cv2.imread(r'F:screenpicedflower.jpg')
注意:
- 图片文件名不能是中文名,否则识别会报错或不能读入;
- imread会去除图像的alpha通道信息
四、显示图像
4.1、调用语法:imshow(title,img)
4.2、参数说明:
- title:图像显示窗窗口标题和名字
- img:opencv图像对象
imread读入的函数使用imshow即可显示,显示可以给显示窗设定标题,这个标题也是显示窗口的名字,标题不同的imshow会显示不同窗口。标题为一个英文字符串,相同标题的窗口就是同一个窗口。对于窗口,OpenCV提供鼠标及键盘事件处理机制。
imshow的窗口可以通过destroyWindow和destroyAllWindows进行关闭,前者要带窗口的标题,后者是关闭所有由当前程序创建的窗口。
4.3、案例
img = cv2.imread(r'F:screenpicedflower.jpg')
cv2.imshow('img',img)
五、VideoCapture读取摄像头、图像文件、或视频流
VideoCapture既支持从视频文件(.avi , .mpg格式)读取,也支持直接从摄像机(比如电脑自带摄像头)中读取。要想获取视频需要先创建一个VideoCapture对象,VideoCapture对象的创建方式有以下三种:
调用语法:
VideoCapture(int deviceIndex,int apiPreference = CAP_ANY ):打开摄像头捕获视频。deviceIndex为摄像头序列号,打开缺省摄像头传0,apiPreference 为VideoCapture API后端标识符,老猿没有仔细研究,用缺省值即可
VideoCapture(filename,int apiPreference = CAP_ANY):打开filename指定的文件
更多VideoCapture的内容请参考《opencv学习—VideoCapture 类基础知识》。
下面的代码打开缺省摄像头捕获视频,并将捕获内容显示为窗口视频,并写入视频文件中保存,按q终止退出&#x