- 一、原码opencv-master
- 二、创建显示窗口
- 三、图片-Mat类型 bgr
- 四、视频采集
- 五、视频录制
- 六、设置鼠标
- 七、TrackBar控件
- 八、numpy库
- 九、Mat
- 1、属性
- 2、拷贝
- 3、访问属性
- 十、通道的分离与合并
- 十一、绘制图像
- 1、线
- 2、椭圆
- 3、多边形
- 4、文本
- 十二、图像运算
- 1、加法
- 2、减法
- 3、乘除
- 4、图像融合
- 5、位运算
- (1)非运算
- (2)与运算
- (3)或/异或
- 十三、图片变换
- 1、图片放大与缩小
- 2、图片翻转
- 3、图像旋转
- 十四、图片仿射变换
搜索:
grep "搜索名" * -Rn | grep ".h"
含义:寻找 搜索名.h
二、创建显示窗口1.创建视图
namedWindow(name, window_flags)
2.显示
imshow()
3.显示时间
waitKey(0) #0代表一直 1代表显示1ms
4.销毁所有窗口
destroyAllWindows()三、图片-Mat类型 bgr
1.加载图片
imread(path, flag)
2.保存图片
imwrite(name, img)四、视频采集
1、虚拟采集器
cap = VideoCapure(index, api)
2、判断摄像头
cap.isOpened()
3、读取视频帧
状态表ret,视频帧frame = cap.read()
4、释放
cap.release()五、视频录制
1、创建
fourcc = cv2.VideoWriter_fourcc(*'MJPG') # 多媒体文件格式 vw = VideoWriter(输出文件,多媒体文件格式,帧率,分辨率真实大小)
2、写入
vw.write()
3、释放
vw.release()六、设置鼠标
1、创建鼠标
setMouseCallback(winname, callback, userdata) # 窗口名字 回调函数
2、设置鼠标回调函数
callback(event, x, y, flags, userdata) #七、TrackBar控件
1、创建trackerbar
createTrackbar(trackbarname, winname, value当前值, count最大值, callback, userdata) getTrackerbarPos(trackbarname, winname)
2、颜色空间转换
img = cvtColor(图片, 色彩空间)八、numpy库
1、创建矩阵
array()
2、创建全0/1矩阵
zeros() / ones zeros((480, 640, 3), np.uint8)
3、创建全值数组
full
4、创建单元数组
identity / eye()
5、检索
[y, x, channel]
6、获取子矩阵
[y1: y2, x1:x2] [:,;]九、Mat 1、属性
| 字段 | 说明 | 字段 | 说明 |
|---|---|---|---|
| dims | 维度 | channels | 通道数 |
| rows | 行数 | size | 矩阵大小 |
| cols | 列数 | type | |
| depth | 像素的位深 | data | 存放数据 |
(1)浅拷贝:
(2)深拷贝:
3、访问属性shape # 高度、长度、通道数 size dtype # 位深十、通道的分离与合并
split(mat) merge((ch1, ch2, ...))十一、绘制图像 1、线
line(img, 开始点, 结束点, 颜色, 线宽, 线型)2、椭圆
ellipse(img, 中心点, 长宽的一半, 角度, 从哪个角度开始, 从哪个角度结束, 颜色)3、多边形
polylines(img, [点集], 是否闭环, 颜色) fillPoly(img, [点集], 颜色)4、文本
putText(img, 字符串, 起始点, 字体, 字号)十二、图像运算 1、加法
add()2、减法
subtract(A, B)3、乘除
multiply(A, B) divide(A, B)4、图像融合
addWeighted(A, alpha, B, bate, gamma) # alphabate权重 # gamma 静态权重5、位运算 (1)非运算
bitwise_not(img)(2)与运算
bitwise_and(img1, img2)(3)或/异或
bitwise_or(img1, img2) bitwise_xor(img1, img2)十三、图片变换 1、图片放大与缩小
resize(src, dsize, fx, fy, interpolation)
fx/fy缩放因子
dsize[y, x]
| interpolation | 插值算法 | |
|---|---|---|
| INTER_NEAREST | 临近插值 | |
| INTER_LINEAR | 双线性插值 | 4个点 |
| INTER_CUBIC | 三次插值 | 16个点 |
| INTER_AREA |
flip(img, flipCode) flipCode == 0 上下 flipCode > 0 左右 flipCode < 0 上下+左右3、图像旋转
rotate(img, rotateCode)
| rotateCode | 描述 |
|---|---|
| ROTATE_90_CLOCKWISE | 顺时针旋转90° |
| ROTATE_180 | 旋转180° |
| ROTATE_90_COUNTERCLOCKWISE | 逆时针旋转90° |
warpAffine(src, M, dsize, flags, mode, value) M = np.float32([[1, 0, 100], [0, 1, 0]) # 平移矩阵



