Python OpenCV 计算机视觉基础
2020-01-07 13:55:08 0 举报
AI智能生成
Python OpenCV API
作者其他创作
大纲/内容
数据操作
单帧(image)操作
cv2.imread(img_path[,flag])
img_path
图片的路径
flag选取范围
cv2.IMREAD_COLOR
彩色图,包含RGB三通道
cv2.IMREAD_GRAYSCALE
灰度图,单通道
Return
img_matrix
读取到图片的有数字组成的矩阵。由颜色图的Shape为(Height,Width,ndim),灰度图为(Height,Width)
cv2.imwrite(img_name,img_matrix)
img_name
图片的名字(包含格式,eg后缀为:.png)
img_matrix
符合图片的矩阵,或者有imread读取的矩阵等
Return
None
视频(moive)操作
cv2.VideoCapture(model_index)
model_index选取值
movie路径
影片儿的路径
0
计算机默认的摄像头
1
计算机紧挨着默认摄像头的摄像头
...
往后依次以此类推
Return
cap
cap.isOpened()
检测是否初始化成功
cap.read()
Return
ret
当前帧是否有值,用于判断视频是否读取完毕
frame
当前帧的img_matrix
cap.get(prop_id)
prop_id
属性的ID编号(整数)。0到18之间的任意数字,代表视频的某个属性
3
获取每一帧宽度
4
获取每一帧高度
Return
对应属性的值
cap.set(prop_id,value)
prop_id
属性的ID编号(整数)。0到18之间的任意数字,代表视频的某个属性
value
对应属性的值
补充
cv2.VideoWrite(path,code_format,per_frame,size,isColor)
path
视频名字(需要带格式后缀)
code_format
视频编码格式,XVID是最好的,MJPG是高尺寸视频,X264得到小尺寸视频
DIVV
可以由函数cv2.VideoWriter_fourcc(*'XVID')指定,window操作系统下建议使用此编码格式
XVID
MJPG
X264
图片展示
cv2.imshow(window_title,img_matrix)
window_title
展示窗口用是用的窗口名字
img_matrix
符合图片的矩阵,或者有imread读取的矩阵等
Return
cv2.waitKey(delay_time)
delay_time
0(零)
当用户按下键盘任意按键时,关闭窗口
非零
延时时间,单位是毫秒。
Return
None
cv2.destroyAllWindows()
Return
None
绘图
cv2.line(img,start_pos,end_pos,color[,thickness[,line_types[,shift]]])
cv2.rectangle( img, start_pos,end_pos,color[,thickness[,line_types[,shift]]])
cv2.cicle( img, center_pos,radiu,color[,thickness[,line_types[,shift]]])
center_pos
圆的中心点坐标
radiu
圆的半径
cv2.ellipse(img,center_pos, axes, angle, startAngle, endAngle, color[, thickness[, lineType[, shift]]] )
center_pos
圆的中心点坐标
参考网址
cv2.putText( img, text, org, fontFace, fontScale, color[, thickness[, lineType[, bottomLeftOrigin]]] )
org
图像中文本字符串的左下角
bottomLeftOrigin
如果为true,则图像数据原点位于左下角。否则,它位于左上角。
fontScale
字体比例因子乘以特定于字体的基本大小
cv2.polylines( img, pts, isClosed, color[, thickness[, lineType[, shift]]] )
pts
由点组成的列表
isClosed
是否闭合
函数公有参数
img
画在哪儿
start_pos
线的起始点,一个长度为2的列表即可
end_pos
线的终点,一个长度为2的列表即可
color
线的颜色,一个长度为3的元组
thickness
线条的粗细,如果给一个闭合图形设置为-1,那么这个图形就会被填充,默认值为1
line_type
cv2.FILLED
cv2.LINE_4
4连线
cv2.LINE_8
8连线
cv2.LINE_AA
抗锯齿
shift
点坐标中的小数位数
一些常用处理图像的函数
cv2.cvtColor(img,trans_model)
img
待处理的图片
trans_model
图片转换模式设定
cv2.COLOR_BGR2GRAY
颜色图转灰度图
np.hstack((img1[,img2,img3...]))
img
待处理的图片
Return
img
拼接完成的图片列表
图像处理相关
图像阈值
cv2.threshold(img,threash,max_value,algorithm)
img
待处理图像
threadh
自定义的阈值,取值区间为[0,255],常用127
max_value
自定义的最大值,最大值为255
type
自定义的最大值,最大值为255
algorithm
阈值使用的算法
cv2.THRESH_BINARY
超过阈值部分取max_value,否则取零(黑色)
cv2.THRESH_BINARY_INV
超过阈值部分取零,否则取max_value。相当于跟binary算法反向
cv2.THRESH_TRUNC
超过阈值部分取阈值,否则不变
cv2.THRESH_TOZERO
超过阈值部分不改变,否则设为零
cv2.THRESH_TOZERO_INV
超过阈值部分取零,否则不改变
Return
ret
thresh_img
处理完成的图像
图像平滑
cv2.blur(img,kernel_size)
img
待处理图像
kernel_size
正则化的核的大小,一般是一个宽高相同(取值多为奇数)的,值都为1的元组
Return
img
处理得到的结果
cv2.boxFilter(img,depth,kernel_size,normalize)
img
待处理图像
depth
深度,一般为-1。表示于原始数据相同深度
kernel_size
正则化的核的大小,一般是一个宽高相同(取值多为奇数)的,值都为1的元组
normalize
此项为True时,结果跟blur结果一致。
为False时,核不会进行归一化操作(不会除以其大小,也就是说不会使用其平均值)
为False时,核不会进行归一化操作(不会除以其大小,也就是说不会使用其平均值)
Return
img
处理得到的结果
cv2.GaussianBlur(img,kernel_size,normalize)
img
待处理图像
kernel_size
正则化的核的大小,一般是一个宽高相同(取值多为奇数)的
normalize
一般为1
Return
img
处理得到的结果
cv2.MedianBlur(img,kernel_equal_length)
img
待处理图像
kernel_equal_length
正则化的核的大小,一般是一个宽高相同(取值多为奇数)的。当前为大于1的整数。
Return
img
处理得到的结果
0 条评论
下一页