一.什么是opencv?
OpenCV(开放源代码计算机视觉库)是一个开源的计算机视觉和机器学习软件库。由一系列 C++ 类和函数构成,用于图像处理、计算机视觉领域的算法实现。
二.环境安装
在conda环境下输入以下命令即可
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python
三.图像表示
像素是图像的基本单元,每个像素存储着图像的颜色、亮度和其他特征。一系列像素组合到一起就形成了完整的图像,在计算机中,图像以像素的形式存在并采用二进制格式进行存储。根据图像的颜色不同,每个像素可以用不同的二进制数表示。
计算机采用0/1编码的系统,数字图像也是利用0/1来记录信息,我们平常接触的图像都是8位数图像。opencv中常用的是8位图像,大多数彩色和灰度图像使用8位表示每个通道的像素值,范围从0到255,其中0,代表最黑,1,表示最白。
四.图像存储
在OpenCV中,无论是读取还是创建图像,结果都是一个NumPy数组。
-
彩色图像:三维数组 RGB图像的数据类型(unit)88位无符号整形 RGB颜色分量(三通道)
-
灰度图像:二维 (单通道)
img.shape 可以获取图像信息
五.基本图像操作
函数 | 语法 | 说明 |
创建窗体 | cv2.namedWindow(winname [,窗口属性]) | 'winname`:窗口名 窗口属性: cv2.WINDOW_AUTOSIZE:默认,自适应窗口大小 cv2.WINDOW_NORMAL:用户可以通过鼠标拖动窗口边缘来自由改变窗口大小 |
读取图像 | cv2.imread(path [,读取方式]) | 注意: |
显示图像 | cv2.imshow(winname,img) |
|
保存图像 | cv2.imwrite(path,img) |
|
图像切片 | img[y:y+h,x:x+w] | 提取的是从(x,y) 开始,高度为h ,宽度为w 的矩形区域 |
图像大小调整 | cv2.resize(img,dsize,dts) |
|
“等待按键” 函数 | cv2.waitKey(n) | 函数的作用是让程序暂停执行直到按下下一个键 n的单位为毫秒 |
销毁窗口 | cv2.destroyAllWindows([winname]) | 会在当前程序执行到该语句时立即销毁打开的窗口,并释放与这些窗口相关的资源 |
六.图像绘制
函数 | 语法 | 说明 |
绘制直线 | cv2.line(img,sart,end,color,thickness) | thickness:线条宽度 |
绘制圆形 | cv2.circle(img,centerpoint,r,color,thickness) | centerpoint、r:圆心和半径 |
绘制矩形 | cv2.rectangle(img,leftupper,rightdown,color,thickness) | leftupper rightdown:矩形的左上角和右下角坐标 |
绘制文本 | cv2.putText() | 需要可自查 |
七.读取视频
-
cap = cv2.VideoCapture(path)
path:视频流资源路径设置为0,代表从默认摄像头捕获视频流 -
ret,frame = cap.read()
-
返回值cap调用read()方法得到一个布尔值和一帧图像,ret布尔值表示是否成功读取到帧,如果为False,可能是因为视频结束或读取失败,如果为True,frame则是当前帧的图像数据。