目录
基本操作
每个像素点值在0-255之间,值越小越黑,越大越白 opencv读取格式是BGR
cv2.IMREAD_COLOR 彩色图像
cv2.IMREAD_GRAYSCALE 灰色图像
图片读取
cv2.imread(‘cat.png’,cv2.IMREAD_COLOR) 读取数据,彩色数据
cv2.imread(‘cat.png’,cv2.IMREAD_GRAYSCALE) 读取数据并转换成灰度图
视频读取
cv2.VideoCapture可以捕获摄像头,用数字来控制不同的设备,例如0,1。
如果是视频文件,直接指定好路径即可。
vc=cv2.VideoCapture(path)
open,frame = vc.read()
gray =cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
open布尔值,表示是否读取了
frame表示一帧图像
颜色通道提取
b,g,r = cv2.split(img) 拆分成三个通道
img = cv2.merge((b,g,r))合并,合并成原来的BGR格式图片
边界填充
cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, borderType)
- BORDER_REPLICATE 复制法,也就是复制最边缘像素。
- BORDER_REFLECT:反射法,对感兴趣的图像中的像素在两边进行复制
- BORDER_REFLECT_101:反射法,也就是以最边缘像素为轴,对称
- BORDER_WRAP:外包装法
- BORDER_CONSTANT:常量法,常数值填充。需要指定 value=
数值计算
读取数据得到的是numpy数组,所以图像之间可以进行相关的数值计算,当数据相加时数组的大小应该是相同的。
cv2.resize(path,(100,100))改变图像大小
cv2.addWeighted(path,weight1,path2,weight2,bias)实现图像融合 R=pathweight1+path2weight2+bias
图像处理
图像阈值
ret, dst = cv2.threshold(src, thresh, maxval, type)
-
src: 输入图,只能输入单通道图像,通常来说为灰度图
-
dst: 输出图
-
ret: 返回阈值
-
thresh: 阈值
-
maxval: 当像素值超过了阈值(或者小于阈值,根据type来决定),所赋予的值
-
type:二值化操作的类型,包含以下5种类型: cv2.THRESH_BINARY; cv2.THRESH_BINARY_INV; cv2.THRESH_TRUNC; cv2.THRESH_TOZERO;cv2.THRESH_TOZERO_INV
- cv2.THRESH_BINARY 超过阈值部分取maxval(最大值),否则取0
- cv2.THRESH_BINARY