数字图像处理——opencv-python
运行环境为jupyter notebook,已安装python,opencv-python(4.5.3.56)
一、
1.imread函数:读取数字图像
cv2.imread(path_of_image, intflag)
函数参数一: 需要读入图像的完整的路径
函数参数二: 标志以什么形式读入图像,可以选择一下方式:
· cv2.IMREAD_COLOR: 加载彩色图像。任何图像的透明度都将被忽略。它是默认标志
· cv2.IMREAD_GRAYSCALE: 以灰度模式加载图像
· cv2.IMREAD_UNCHANGED: 保留读取图片原有的颜色通道
· 1 : 等同于cv2.IMREAD_COLOR
· 0 : 等同于cv2.IMREAD_GRAYSCALE
· -1 : 等同于cv2.IMREAD_UNCHANGED
2.imshow函数:窗口中显示图像,也可以通过imutils模块调整显示图像的窗口的大小
cv2.imshow(windows_name, image)
函数参数一: 窗口名称(字符串)
函数参数二: 图像对象,类型是numpy中的ndarray类型
3.imwrite函数:将图像保存到本地
cv2.imwrite(image_filename, image)
函数参数一: 保存的图像名称(字符串)
函数参数二: 图像对象,类型是numpy中的ndarray类型
4.destroyWindow函数:销毁窗口
cv2.destroyWindow(windows_name) | cv2.destroyAllWindows()
(1) time_of_milliseconds > 0 : 此时time_of_milliseconds表示时间,单位是毫秒,含义表示等待 time_of_milliseconds毫秒后图像将自动销毁
(2)(无法实现) time_of_milliseconds <= 0 : 此时图像窗口将等待一个键盘敲击,接收到指定的键盘敲击便会进行窗口销毁
二、
5.图像色彩空间变换函数cv2.cvtColor
cv2.cvtColor(input_image, flag)
参数一: input_image表示将要变换色彩的图像ndarray对象
参数二: 表示图像色彩空间变换的类型,以下介绍常用的两种:
· cv2.COLOR_BGR2GRAY: 表示将图像从BGR空间转化成灰度图,最常用
· cv2.COLOR_BGR2HSV: 表示将图像从RGB空间转换到HSV空间
图像的颜色主要是由于图像受到外界光照影响随之产生的不同颜色信息
因此在我们做图像特征提取和识别过程时,我们要的是图像的梯度信息
因此我们会在做图像特征提取和识别前将图像转化为灰度图
三、绘制自定义数字图像
先介绍一下它们的公共参数:
· img: 表示需要进行绘制的图像对象ndarray
· color: 表示绘制几何图形的颜色,采用BGR即上述说的(B、G、R)
· thickness: 表示绘制几何图形中线的粗细,默认为1,对于圆、椭圆等封闭图像取-1时是填充图形内部
· lineType : 表示绘制几何图形线的类型,默认8-connected线是光滑的,当取cv2.LINE_AA时线呈现锯齿状
(1) cv2.line函数:直线绘制函数, 函数官方定义为:
cv2.line(image, starting, ending, color, thickness, lineType)
参数image、color、thickness、lineType分别是上述公共定义,参数starting、ending分别表示线的起点像素坐标、终点像素坐标
(2) cv2.rectangle函数:长方形绘制函数,函数官方定义:
cv2.rectangle(image, top-left, bottom-right, color, thickness, lineType)
参数image、color、thickness、lineType分别是上述公共定义,参数top-left、bottom-right分别表示长方形的左上角像素坐标、右下角像素坐标
(3) cv2.circle函数:圆形绘制函数,官方定义函数为:
cv2.circle(image, center, radius, color, thickness, lineType)
参数image、color、thickness、lineType分别是上述公共定义,参数center、radius分别表示圆的圆心像素坐标、圆的半径长度,圆绘制函数中当参数thickness = -1 时绘制的是实心圆,当thickness >= 0 时绘制的是空心圆
(4) cv2.ellipse函数:椭圆绘制函数,官方定义为:
cv2.circle(image, center, (major-axis-length, minor-axis-length), angle, startAngle, endAngle, color, thickness, lineType)
椭圆的参数较多,首先参数image、color、thickness、lineType分别是上述公共定义,椭圆绘制函数中当参数thickness = -1 时绘制的是实心椭圆,当thickness >= 0 时绘制的是空心椭圆,其他参数如下
· center: 表示椭圆中心像素坐标
· major-axis-length: 表示椭圆的长轴长度
· minor-axis-length: 表示椭圆的短轴长度
· angle: 表示椭圆在逆时针方向旋转的角度
· startAngle: 表示椭圆从主轴向顺时针方向测量的椭圆弧的起始角度
· endAngle: 表示椭圆从主轴向顺时针方向测量的椭圆弧的终止时角度
(5) cv2.polylines函数:多边形绘制函数,官方定义函数为:
cv2.polylines(image, [point-set], flag, color, thickness, lineType)
参数image、color、thickness、lineType分别是上述公共定义,其他参数如下:
· [point-set]: 表示多边形点的集合,如果多边形有m个点,则便是一个m12的数组,表示共m个点
· flag: 当flag = True 时,则多边形是封闭的,当flag = False 时,则多边形只是从第一个到最后一个点连线组成的图像,没有封闭
四、
对图像取反
2.对图像像素线性变换