openCV实操笔记

一、原码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)浅拷贝:

Mat A
Header
Data
Mat B
Header

(2)深拷贝:

Mat A
Header
Data
Mat B
Header
Data

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])   # 平移矩阵
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值