openCV实 *** 笔记

openCV实 *** 笔记,第1张

openCV入门一
  • 一、原码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、图像旋转
  • 十四、图片仿射变换

一、原码opencv-master

搜索:

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存放数据
2、拷贝

(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)
#  alpha\bate权重
#  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
2、图片翻转
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])   # 平移矩阵

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/791142.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-05
下一篇 2022-05-05

发表评论

登录后才能评论

评论列表(0条)

保存