数字图像处理——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 时,则多边形只是从第一个到最后一个点连线组成的图像,没有封闭

四、

  1. 对图像取反

2.对图像像素线性变换

(0)

相关推荐

  • OpenCV-Python学习教程.2

    如果你用Linux得设备,可能会用到这里来看有没有设备被安全挂载.因为没有一个图形化的页面来方便的查看. 子Linux不是太好使 # 获取视频帧的宽w = fcap.get(cv2.CAP_PROP_ ...

  • OpenCV基础知识入门

    本文旨在让你快速入门opencv. OpenCV OpenCV是计算机视觉中最受欢迎的库,最初由intel使用C和C ++进行开发的,现在也可以在python中使用.该库是一个跨平台的开源库,是免费使 ...

  • 【AI基础】OpenCV,PIL,Skimage你pick谁

    汤兴旺 就读于吉林大学汽车工程学院,计算机视觉爱好者,言有三弟子 作者 | 汤兴旺 编辑 | 汤兴旺/言有三 如何对图像进行处理是深度学习图像处理的基础,我们常常需要对图像进行读取.保存.缩放.裁剪. ...

  • 【从零学习OpenCV 4】双边滤波

    重磅干货,第一时间送达 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍<OpenCV 4开发详解>.为了更让小伙伴更早的了解最新版的OpenCV 4,小白与出版社沟通 ...

  • 【从零学习OpenCV 4】图像膨胀

    重磅干货,第一时间送达 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍<OpenCV 4开发详解>.为了更让小伙伴更早的了解最新版的OpenCV 4,小白与出版社沟通 ...

  • cv2.ellipse()

    OpenCV-Python是旨在解决计算机视觉问题的Python绑定库.cv2.ellipse()方法用于在任何图像上绘制椭圆. cv2.ellipse(image, centerCoordinate ...

  • Python进阶——OpenCV之GUI

    文章目录 图像处理(Getting Started with Images) 读取图像 显示图像 保存图像 使用Matplotlib 视频处理(Getting Started with Videos) ...

  • OpenCV-Python鼠标绘制矩形框和像素归一化

    重磅干货,第一时间送达 鼠标绘制矩形框 之前有说到使用opencv绘制几何图形,但那些都是固定地给出坐标绘制固定位置的形状.有时需要鼠标在任何位置绘制几何形状,下面就来看看如何使用鼠标响应函数在图像的 ...

  • OpenCV-Python图像的缩放、翻转和旋转

    重磅干货,第一时间送达 图像的缩放 opencv中对图像进行放缩[1]有两种方式可以实现,一种是使用指定尺寸放缩:一种是使用缩放比例放缩. 指定尺寸 cv2.resize(image, (1920, ...

  • python数字图像处理(三)边缘检测常用算子

    在该文将介绍基本的几种应用于边缘检测的滤波器,首先我们读入saber用来做为示例的图像 #读入图像代码,在此之前应当引入必要的opencv matplotlib numpysaber = cv2.im ...

  • (6条消息) 数字图像处理之掩膜(mask)

    版权 打基础打基础,第一次看的时候理解了好久... 重点:图像滤镜的模板

  • opencv python实现图像匹配

    '''基于FLANN的匹配器(FLANN based Matcher)1.FLANN代表近似最近邻居的快速库.它代表一组经过优化的算法,用于大数据集中的快速最近邻搜索以及高维特征.2.对于大型数据集, ...

  • 使用OpenCV Python进行人脸识别

    先决条件 对图像分类的基本理解 Python 和深度学习知识 对深度学习中各种模块的概念理解 介绍 在这篇文章中,我们将看看什么是人脸识别?以及它与人脸检测有何不同? 我们先简单了解一下人脸识别的原理 ...

  • opencv python智能车道检测,助力无人驾驶

    近年来,基于人工智能的车道检测算法得到了广泛的研究.与传统的基于特征的方法相比,许多方法表现出了优越的性能.然而,当使用具有挑战性的图像时,其准确率通常仍在低80%或高90%之间,甚至更低. 准确可靠 ...

  • 数字图像处理基本知识

    数字图像处理基本知识

  • 【精品博文】书架应该有这样一本书-----《数字图像处理》

    炎炎夏日,AET又有新活动,在6月1日,按照惯例,学校会发个小红包给有孩子的家长,今年的礼物很特别,一张购书卡,我觉得特别有意义,想起了我的童年,想起了我珍藏的小人书,今天就给大家推荐这本计算机专业学 ...

  • 视频教程 | 数字图像处理

    人类从外界获得的信息约有75%是从图像中获得的.数字图像处理是用计算机对图像信息进行处理的一门技术,使利用计算机对图像进行各种处理的技术和方法,是信息科学中发展较快的热点研究方向.随着现代电子.计算机 ...

  • 数字图像处理(上海交大版)

    EEWORLD 电子资讯 犀利解读 技术干货 每日更新 随着近年来AI概念的大火,计算机视觉和机器视觉应用赢来了新的机遇,而与其息息相关的核心技术之一数字图像处理也得到了快速发展.数字图像处理(Dig ...