来源 | 极链AI云(性价比最高的共享GPU算力平台,新人注册可领取限定198元大礼包,价值100+小时的免费使用时长,领取地址:https://cloud.videojj.com/)
作者 | sun 极链AI云技术原创奖励计划
原文地址 | openCV基本操作笔记(官网论坛)
读取图片
cv2.imread(filepath,flags)
- filepath:要读入图片的完整路径
- flags:读入图片的标志
- cv2.IMREAD_COLOR:默认参数,读入一副BGR彩色图片,忽略alpha通道
- cv2.IMREAD_GRAYSCALE:读入灰度图片
- cv2.IMREAD_UNCHANGED:顾名思义,读入完整图片,包括alpha通道
- 返回值:一个rows * cols * depth的数组,
rows
是图像像素的行数cols
是图像像素的列数depth
是图像颜色深度,灰度图一般是1 ,RGB图一般是3
显示图片
cv2.imshow('image',img)
- image:显示图像的窗口的名字
- img:要显示的图像(imread读入的图像)
保存图片
cv2.imwrite(file,img,[num])
- file:要保存的文件名
- img:保存的图像
- num:针对特定的格式:对于JPEG,其表示的是图像的质量,用0 - 100的整数表示,默认95;对于png ,第三个参数表示的是压缩级别,默认为3。
颜色空间转换函数
cv2.cvtColor(src, code, dst=None, dstCn=None)
- src: 原图像;
- code: 指定颜色空间转换类型,cv2.COLOR_BGR2RGB,cv2.COLOR_BGR2GRAY 等
- dst: 目标图像;与原图像大小深度一致;
- dstCn: 指定目标图像通道数;默认None,则会根据src、code自动计算;
图像仿射
cv2.warpAffine(src, M, dsize[, dst[, flags[, borderMode[, borderValue]]]]) → dst
- src :输入图像;
- M:变换矩阵,作为仿射变换矩阵,一般反映平移或旋转的关系,为numpy的float32类型的2×3的变换矩阵。
- dsize:输出图像的大小;
- flags :插值方法的组合(int 类型);
- borderMode :边界像素模式(int 类型);
- borderValue :边界填充值; 默认情况下,它为0。
获得仿射变化矩阵
cv2.getRotationMatrix2D(center, angle, scale) -> Mat
- center:图片的旋转中心
- angle:旋转角度
- scale:缩放比例
- Mat:仿射变换矩阵,2×3的变换矩阵。
图像缩放
cv2.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]])
- src:原图像d
- size:输出图像所需大小
- fx:沿水平轴的比例因子
- fy:沿垂直轴的比例因子
- interpolation:插值方式
画图
画直线、矩形
cv2.line(img, pt1, pt2, color[, thickness[, lineType[, shift]]]) → img
cv2.rectangle(img, pt1, pt2, color[, thickness[, lineType[, shift]]]) → img
- img:背景图
- pt1:直线起点坐标
- pt2:直线终点坐标
- color,当前绘画的颜色。如在BGR模式下,传递(255,0,0)表示蓝色画笔。灰度图下,只需要传递亮度值即可。
- thickness,画笔的粗细,线宽。若是-1表示画封闭图像,如填充的圆。默认值是1
- lineType,线条的类型
- 如8-connected类型、anti-aliased线条(反锯齿),默认情况下是8-connected样式ide,cv2.LINE_AA表示反锯齿线条,在曲线的时候视觉效果更佳。