自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 资源 (2)
  • 收藏
  • 关注

转载 TVM论文阅读

TVM论文阅读1 介绍1.1 优化的基本挑战1.2 TVM:一个端到端优化堆栈2 优化计算图2.1 计算图2.2 操作符融合2.3 数据布局转换2.4 计算图级别优化的限制3 优化张量操作3.1 Tensor表达式语言3.2 调度空间3.3 协作式嵌套并行化3.4 张量化:生成硬件接口3.5 编译器的延迟隐藏支持4 代码生成和运行时支持4.1 代码生成4.2 运行时支持4.3 自动调优4.4 远程部署性能分析5 评估5.1 树莓派3B评估5.2 NVIDIA Tesla K80和GTX1080评估5.3 P

2021-01-29 22:06:02 1948 1

转载 TVM学习教程

目录Step 1:TVM 视频介绍Step 2:研读 TVM 论文Step 3:了解 TVM 官网中可以学习的资料Step 4:上手 TVM CodeStep 5:TVM 其他相关资料Step 1:TVM 视频介绍https://www.bilibili.com/video/av29521815/Step 2:研读 TVM 论文https://www.usenix.org/system/files/osdi18-chen.pdfStep 3:了解 TVM 官网中可以学习的资料https://tv

2021-01-29 12:35:37 2551

原创 Ubuntu16.04安装Docker

安装相关包先更新一下软件源库信息sudo apt-get update sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common添加软件仓库官方仓库# 添加 Docker 官方的 GPG 密钥(为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥)curl -fsSL https://download.docker.com/l

2021-01-28 22:28:05 280

转载 TVM-初识TVM

目录TVM简介那么TVM是什么?TVM做了哪些工作TVM简介随着深度学习的发展,深度学习的能力可以说是越来越强大,识别率节节攀升,与此同时,深度学习框架也变得越来越多,目前比较主流的深度学习框架包括:Pytorch、TensorFlow、MxNet、Caffe、Keras等。一般进行深度学习任务主要包括两部分,一是训练出精度比较高的模型,然后将其部署到对应的目标机器上。针对第一部分,自然我们可以使用各种深度学习框架,通过修改网络参数等,训练出精度比较满意的模型,一般情况下,在训练深度学习模型的时候,

2021-01-24 23:12:58 3710

转载 一文读懂傅立叶变换处理图像的原理

图 (a): (从左到右) (1) 原始图片 (2) 使用高斯低通滤波器 (3) 使用高斯高通滤波器. 本文中的原始图像来自OpenCV Github示例。数字图像现在已经成为我们日常生活的一部分。因此,数字图像处理变得越来越重要。如何提高图像的分辨率或降低图像的噪声一直是人们热门话题。傅里叶变换可以帮助我们解决这个问题。我们可以使用傅立叶变换将灰度像素模式的图像信息转换成频域并做进一步的处理。今天,我将讨论在数字图像处理中,如何使用快速傅立叶变换,以及在Python中如何实现它。操作流程如下 (从左.

2021-01-21 22:01:08 1052

转载 C++版本OpenCv教程(四十八)图像修复

在实际应用或者工程中,图像常常会收到噪声的干扰,例如在拍照时镜头上存在灰尘或者飞行的小动物,这些干扰会导致拍摄到的图像出现部分内容被遮挡的情况。对于较为久远的图像,可能只有实体图像而没有数字存储形式的底板,因此相片在保存和运输过程中可能产生划痕,导致图像中信息的损坏和丢失。图像修复技术就是利用图像中损坏区域边缘的像素,根据像素值的大小以及像素间的结构关系,估计出损坏区域可能的像素排列,从而去除图像中受污染的区域。图像修复不仅可以去除图像中得“划痕”,还可以去除图像中得水印、日期等。OpenCV 4提供了

2021-01-21 21:33:53 1237 1

转载 C++版本OpenCv教程(四十七)图像矩的计算与应用

矩是描述图像特征的算子,被广泛用于图像检索和识别、图像匹配、图像重建、图像压缩以及运动图像序列分析等领域。本节中将介绍几何矩与Hu矩的计算方法以及应用Hu矩实现图像轮廓的匹配。几何矩与中心矩图像几何矩的计算方式如式(7.8)所示:其中I(x,y)是像素(x,y)处的像素值。当x和y同时取值0时称为零阶矩,零阶矩可以用于计算某个形状的质心,当x和y分别取值0和1时被称为一阶矩,以此类推。图像质心的计算公式如(7.9)所示:图像中心距计算方式如式(7.10)所示:图像归一化几何矩计算方式如式所示

2021-01-21 20:56:33 915

转载 C++版本OpenCv教程(四十六)轮廓外接多边形

由于噪声和光照的影响,物体的轮廓会出现不规则的形状,根据不规则的轮廓形状不利于对图像内容进行分析,此时需要将物体的轮廓拟合成规则的几何形状,根据需求可以将图像轮廓拟合成矩形、多边形等。本小节将介绍OpenCV 4中提供的轮廓外接多边形函数,实现图像中轮廓的形状拟合。矩形是常见的几何形状,矩形的处理和分析方法也较为简单,OpenCV 4提供了两个函数求取轮廓外接矩形,分别是**求取轮廓最大外接矩形的boundingRect()函数和求取轮廓最小外接矩形的minAreaRect()**函数。寻找轮廓外接最大

2021-01-21 16:23:26 2799

转载 C++版本OpenCv教程(四十五)计算轮廓面积与长度

轮廓面积轮廓面积是轮廓重要的统计特性之一,通过轮廓面积的大小可以进一步分析每个轮廓隐含的信息,例如通过轮廓面积区分物体大小识别不同的物体。轮廓面积是指每个轮廓中所有的像素点围成区域的面积,单位为像素。OpenCV 4提供了检测轮廓面积的**contourArea()**函数,该函数的函数原型在代码清单7-15中给出。double cv::contourArea(InputArray contour,bool oriented = false )contour:轮廓的像素点oriented:区

2021-01-21 15:44:53 4169

转载 C++版本OpenCv教程(四十三)直线拟合

前面介绍的函数都是寻找图像或者点集中是否存在直线,而有时我们明确已知获取到的数据在一条直线上,此时需要将所有数据拟合出一条直线,但是由于噪声的存在,这条直线可能不会通过大多数的数据,因此需要保证所有的数据点距离直线的距离最小,如图7-10所示。相比于直线检测,直线拟合的最大特点是将所有数据只拟合出一条直线。OpenCV 4中提供了利用最小二乘M-estimator方法拟合直线的**fitLine()**函数,该函数的函数原型在代码清单7-7中给出。void cv::fitLine(InputArray

2021-01-21 15:24:54 5063

转载 C++版本OpenCv教程(四十四)轮廓发现与绘制

图像的轮廓不仅能够提供物体的边缘,而且还能提供物体边缘之间的层次关系以及拓扑关系。我们可以将图像轮廓发现简单理解为带有结构关系的边缘检测,这种结构关系可以表明图像中连通域或者某些区域之间的关系。图7-14为一个具有4个不连通边缘的二值化图像,由外到内依次为0号、1号、2号、3号条边缘。为了描述不同轮廓之间的结构关系,定义由外到内的轮廓级别越来越低,也就是高一层级的轮廓包围着较低层级的轮廓,被同一个轮廓包围的多个不互相包含的轮廓是同一层级轮廓。例如在图7-14中,0号轮廓层级比1号和第2号轮廓的层及都要高,2

2021-01-20 19:21:08 3250

转载 C++版本OpenCv教程(四十二)霍夫变换原理及直线检测

霍夫变换(Hough Transform)是图像处理中检测是否存在直线的重要算法,该算法是由Paul Hough在1962年首次提出,最开始只能检测图像中的直线,但是霍夫变换经过不断的扩展和完善已经可以检测多种规则形状,例如圆形、椭圆等。霍夫变换通过将图像中的像素在一个空间坐标系中变换到另一个坐标空间坐标系中,使得在原空间中具有形同特性的曲线或者直线映射到另一个空间中形成峰值,从而把检测任意形状的问题转化为统计峰值的问题。霍夫变换通过构建检测形状的数学解析式将图像中像素点映射到参数空间中,例如我们想检测两

2021-01-19 13:54:27 1686

转载 C++版本OpenCv教程(四十一)形态学应用

图像形态学腐蚀可以将细小的噪声区域去除,但是会将图像主要区域的面积缩小,造成主要区域的形状发生改变;图像形态学膨胀可以扩充每一个区域的面积,填充较小的空洞,但是同样会增加噪声的面积。根据两者的特性将图像腐蚀和膨胀适当的结合,便可以既去除图像中的噪声,又不缩小图像中主要区域的面积;既填充了较小的空洞,又不增加噪声所占的面积。因此,本节中将介绍如何利用不同顺序的图像腐蚀和膨胀实现图像的开运算、闭运算、形态学梯度、顶帽运算、黑帽运算以及击中击不中变换等操作。开运算图像开运算可以去除图像中的噪声,消除较小连通域

2021-01-18 09:23:45 581

转载 C++版本OpenCv教程(四十)图像膨胀

图像的膨胀与图像腐蚀是一对相反的过程,与图像腐蚀相似,图像膨胀同样需要结构元素用于控制图像膨胀的效果。结构元素可以任意指定结构的中心点,并且结构元素的尺寸和具体内容都可以根据需求自己定义。定义结构元素之后,将结构元素的中心点依次放到图像中每一个非0元素处,如果原图像中某个元素被结构元素覆盖,但是该像素的像素值不与结构元素中心点对应的像素点的像素值相同,那么将原图像中的该像素的像素值修改为结构元素中心点对应点的像素值。图像的膨胀过程示意图如图6-12所示,图6-12中左侧为待膨胀的原图像,中间为结构元素,首先

2021-01-18 08:34:27 3290

转载 C++版本OpenCv教程(三十九)图像腐蚀

图像的腐蚀过程与图像的卷积操作类似,都需要模板矩阵来控制运算的结果,在图像的腐蚀和膨胀中这个模板矩阵被称为结构元素。与图像卷积相同,结构元素可以任意指定图像的中心点,并且结构元素的尺寸和具体内容都可以根据需求自己定义。定义结构元素之后,将结构元素的中心点依次放到图像中每一个非0元素处,如果此时结构元素内所有的元素所覆盖的图像像素值均不为0,则保留结构元素中心点对应的图像像素,否则将删除结构元素中心点对应的像素。图像的腐蚀过程示意图如图6-12所示,图6-12中左侧为待腐蚀的原图像,中间为结构元素,首先将结构

2021-01-16 14:05:27 3396

转载 C++版本OpenCv教程(三十八 )图像连通域分析

图像的连通域是指图像中具有相同像素值并且位置相邻的像素组成的区域,连通域分析是指在图像中寻找出彼此互相独立的连通域并将其标记出来。提取图像中不同的连通域是图像处理中较为常用的方法,例如在车牌识别、文字识别、目标检测等领域对感兴趣区域分割与识别。一般情况下,一个连通域内只包含一个像素值,因此为了防止像素值波动对提取不同连通域的影响,连通域分析常处理的是二值化后的图像。了解图像连通域分析方法之前,首先需要了解图像邻域的概念。图像中两个像素相邻有两种定义方式,分别是4-邻域和8-邻域,这两种领域的定义方式在图6

2021-01-16 12:40:46 4241 4

转载 C++版本OpenCv教程(三十七 )图像距离变换

图像中两个像素之间的距离有多种定义方式,图像处理中常用的距离有欧式距离、街区距离和棋盘距离,本节中将重点介绍这三种距离的定义方式,以及如何利用两个像素间的距离来描述一幅图像。欧式距离两个像素点之间的直线距离。与直角坐标系中两点之间的直线距离求取方式相同,分别计算两个像素在X方向和Y方向上的距离,之后利用勾股定理得到两个像素之间的距离,数学表示形式如式(6.1)所示。街区距离两个像素点X方向和Y方向的距离之和。欧式距离表示的是从一个像素点到另一个像素点的最短距离,然而有时我们并不能以两个点之间连线

2021-01-15 10:51:46 1112

转载 C++版本OpenCv教程(三十六 )Canny算法

本节中最后介绍的边缘检测算法是Canny算法,该算法不容易受到噪声的影响,能够识别图像中的弱边缘和强边缘,并结合强弱边缘的位置关系,综和给出图像整体的边缘信息。Canny边缘检测算法是目前最优越的边缘检测算法之一,该方法的检测过程分为以下5个步骤:Step1:使用高斯滤波平滑图像,减少图像中噪声。一般情况下使用式(5.23)所示的5×5的高斯滤波器。Step2:计算图像中每个像素的梯度方向和幅值。首先通过Sobel算子分别检测图像X方向的边缘和Y方向的边缘,之后利用式(5.24)计算梯度的方向

2021-01-15 10:07:38 1325

转载 C++版本OpenCv教程(三十五 )Laplacian算子

上述的边缘检测算子都具有方向性,因此需要分别求取X方向的边缘和Y方向的边缘,之后将两个方向的边缘综合得到图像的整体边缘。Laplacian算子具有各方向同性的特点,能够对任意方向的边缘进行提取,具有无方向性的优点,因此使用Laplacian算子提取边缘不需要分别检测X方向的边缘和Y方向的边缘,只需要一次边缘检测即可。Laplacian算子是一种二阶导数算子,对噪声比较敏感,因此常需要配合高斯滤波一起使用。Laplacian算子的定义如式(5.20)所示。OpenCV 4提供了通过Laplacian算子

2021-01-15 09:41:58 1137 1

转载 C++版本OpenCv教程(三十四 )边缘检测原理

图像的边缘指的是图像中像素灰度值突然发生变化的区域,如果将图像的每一行像素和每一列像素都描述成一个关于灰度值的函数,那么图像的边缘对应在灰度值函数中是函数值突然变大的区域。函数值的变化趋势可以用函数的导数描述。当函数值突然变大时,导数也必然会变大,而函数值变化较为平缓区域,导数值也比较小,因此可以通过寻找导数值较大的区域去寻找函数中突然变化的区域,进而确定图像中的边缘位置。图5-27给出一张含有边缘的图像,图像每一行的像素灰度值变化可以用图中下方的曲线表示。通过像素灰度值曲线可以看出图像边缘位于曲线变化

2021-01-13 23:25:41 761

转载 C++版本OpenCv教程(三十三)双边滤波

前面我们介绍的滤波方法都会图像照成模糊,使得边缘信息变弱或者消失,因此需要一种能够对图像边缘信息进行保留的滤波算法,双边滤波就是经典的常用的能够保留图像边缘信息的滤波算法之一。双边滤波是一种综合考虑滤波器内图像空域信息和滤波器内图像像素灰度值相似性的滤波算法,可以实现在保留区域信息的基础上实现对噪声的去除、对局部边缘的平滑。双边滤波对高频率的波动信号起到平滑的作用,同时保留大幅值的信号波动,进而实现对保留图像中边缘信息的作用。双边滤波的示意图如图5-24所示,双边滤波器是两个滤波器的结合,分别考虑空域信息和

2021-01-13 23:15:19 1716

转载 C++版本OpenCv教程(三十二 )中值滤波

中值滤波就是用滤波器范围内所有像素值的中值来替代滤波器中心位置像素值的滤波方法,是一种基于排序统计理论的能够有效抑制噪声的非线性信号处理方法。中值滤波计算方式如图5-21所示,将滤波器范围内所有的像素值按照由小到大的顺序排列,选取排序序列的中值作为滤波器中心处黄色像素的新像素值,之后将滤波器移动到下一个位置,重复进行排序取中值的操作,直到将图像所有的像素点都被滤波器中心对应一遍。中值滤波不依赖于滤波器内那些与典型值差别很大的值,因此对斑点噪声和椒盐噪声的处理具有较好的处理效果。相比于均值滤波,中值滤波对于

2021-01-12 23:52:44 3200 1

转载 C++版本OpenCv教程(三十一)可分离滤波

前面介绍的滤波函数使用的滤波器都是固定形式的滤波器,有时我们需要根据实际需求调整滤波模板,例如在滤波计算过程中滤波器中心位置的像素值不参与计算,滤波器中参与计算的像素值不是一个矩形区域等。OpenCV 4无法根据每种需求单独编写滤波函数,因此OpenCV 4提供了根据自定义滤波器实现图像滤波的函数,就是我们本章最开始介绍的卷积函数filter2D(),不过根据函数的名称,这里称呼为滤波函数更为准确一些,输入的卷积模板也应该称为滤波器或者滤波模板。该函数的使用方式我们在一开始已经介绍,只需要根据需求定义一个卷

2021-01-12 23:30:44 446 1

转载 C++版本OpenCv教程(三十)高斯滤波

高斯噪声是一种常见的噪声,图像采集的众多过程中都容易引入高斯噪声,因此针对高斯噪声的高斯滤波也广泛应用于图像去噪领域。高斯滤波器考虑了像素离滤波器中心距离的影响,以滤波器中心位置为高斯分布的均值,根据高斯分布公式和每个像素离中心位置的距离计算出滤波器内每个位置的数值,从而形成一个形如图5-15所示的高斯滤波器。之后将高斯滤波器与图像之间进行滤波操作,进而实现对图像的高斯滤波。OpenCV 4提供了对图像进行高斯滤波操作的GaussianBlur()函数,该函数的函数原型在代码清单5-13中给出。voi

2021-01-11 10:10:47 1542

转载 C++版本OpenCv教程(二十九)方框滤波

方框滤波是均值滤波的一般形式,在均值滤波中,将滤波器中所有的像素值求和后的平均值作为滤波后结果,方框滤波也是求滤波器内所有像素值的之和,但是方框滤波可以选择不进行归一化,就是将所有像素值的和作为滤波结果,而不是所有像素值的平均值。OpenCV 4中提供了boxFilter()函数实现方框滤波,该函数的函数原型在代码清单5-10中给出。void cv::boxFilter(InputArray src, OutputArray dst,

2021-01-11 09:37:57 310

转载 C++版本OpenCv教程(二十八)均值滤波

我们在测量数据时,往往会多次测量最后求取所有数据的平均值作为最终结果,均值滤波的思想和测量数据时多次测量求取平均值的思想一致。均值滤波将滤波器内所有的像素值都看作中心像素值的测量,将滤波器内所有的像数值的平均值作为滤波器中心处图像像素值。滤波器内的每个数据表示对应的像素在决定中心像素值的过程中所占的权重,由于滤波器内所有的像素值在决定中心像素值的过程中占有相同的权重,因此滤波器内每个数据都相等。均值滤波的优点是在像素值变换趋势一致的情况下,可以将受噪声影响而突然变化的像素值修正到接近周围像素值变化的一致性下

2021-01-10 23:23:56 972

转载 C++版本OpenCv教程(二十七)图像中添加高斯噪声

高斯白噪声是指噪声分布的概率密度服从高斯分布(正态分布)的一类噪声,其产生的主要原因是由于相机在拍摄时视场较暗且亮度不均匀造成的,同事相机长时间工作使得温度过高也会引起高斯噪声,另外电路元器件自身噪声和互相影响也是造成高斯噪声的重要原因之一。高斯噪声的概率密度函数如式(5.2)所示,其中Z表示图像的灰度值,μ表示像素值的平均值或者期望值,...

2021-01-10 17:10:50 4763

转载 C++版本OpenCv教程(二十六)图像中添加椒盐噪声

椒盐噪声又被称作脉冲噪声,它会随机改变图像中的像素值,是由相机成像、图像传输、解码处理等过程产生的黑白相间的亮暗点噪声,其样子就像在图像上随机的撒上一些盐粒和黑椒粒,因此被称为椒盐噪声。目前为止OpenCV 4中没有提供专门用于为图像添加椒盐噪声的函数,需要使用者根据自己需求去编写生成椒盐噪声的程序,本小节将会带领读者一起实现在图像中添加椒盐噪声。考虑到椒盐噪声会随机产生在图像中的任何一个位置,因此对于椒盐噪声的生成需要使用到OpenCV 4中能够产生随机数的函数rand(),为了能够生成不同数据类型的随

2021-01-07 21:18:01 2889

转载 C++版本OpenCv教程(二十五)图像模板匹配

前面我们通过图像直方图反向投影的方式在图像中寻找模板图像,由于直方图不能直接反应图像的纹理,因此如果两张不同模板图像具有相同的直方图分布特性,那么在同一张图中对这两张模板图像的直方图进行反向投影,最终结果将不具有参考意义。因此,我们在图像中寻找模板图像时,可以直接通过比较图像像素的形式来搜索是否存在相同的内容,这种通过比较像素灰度值来寻找相同内容的方法叫做图像的模板匹配。模板匹配常用于在一幅图像中寻找特定内容的任务中。由于模板图像的尺寸小于待匹配图像的尺寸,同时又需要比较两张图像中的每一个像素的灰度值,因

2021-01-07 20:50:14 3418 1

转载 C++版本OpenCv教程(二十四)直方图匹配

直方图均衡化函数可以自动的改变图像直方图的分布形式,这种方式极大的简化了直方图均衡化过程中需要的操作步骤,但是该函数不能指定均衡化后的直方图分布形式。在某些特定的条件下需要将直方图映射成指定的分布形式,这种将直方图映射成指定分布形式的算法称为直方图匹配或者直方图规定化。直方图匹配与直方图均衡化相似,都是对图像的直方图分布形式进行改变,只是直方图均衡化后的图像直方图是均匀分布的,而直方图匹配后的直方图可以随意指定,即在执行直方图匹配操作时,首先要知道变换后的灰度直方图分布形式,进而确定变换函数。直方图匹配操作

2021-01-05 09:47:34 1586

转载 C++版本OpenCv教程(二十三)直方图均衡化

如果一个图像的直方图都集中在一个区域,则整体图像的对比度比较小,不便于图像中纹理的识别。例如相邻的两个像素灰度值如果分别是120和121,仅凭肉眼是如法区别出来的。同时,如果图像中所有的像素灰度值都集中在100到150之间,则整个图像想会给人一种模糊的感觉,看不清图中的内容。如果通过映射关系,将图像中灰度值的范围扩大,增加原来两个灰度值之间的差值,就可以提高图像的对比度,进而将图像中的纹理突出显现出来,这个过程称为图像直方图均衡化。在OpenCV 4中提供了equalizeHist()函数用于将图像的直方

2021-01-04 10:08:56 1088

转载 C++版本OpenCv教程(二十二)直方图比较

图像的直方图表示图像像素灰度值的统计特性,因此可以通过比较两张图像的直方图特性比较两张图像的相似程度。从一定程度上来讲,虽然两张图像的直方图分布相似不代表两张图像相似,但是两张图像相似则两张图像的直方图分布一定相似。例如通过插值对图像进行放缩后图像的直方图虽然不会与之前完全一致,但是两者一定具有很高的相似性,因而可以通过比较两张图像的直方图分布相似性对图像进行初步的筛选与识别。OpenCV 4中提供了用于比较两个图像直方图相似性的compareHist()函数,该函数原型在代码清单4-5中给出。doub

2021-01-04 09:34:27 1058

转载 C++版本OpenCv教程(二十一)直方图归一化

前面我们完成了对一张图像像素灰度值的统计,并成功绘制了图像的直方图。但是由于绘制直方图的图像高度小于某些灰度值统计的数目,因此我们在绘制直方图时将所有的数据都缩小为原来的二十分之一之后再进行绘制,目的就是为了能够将直方图完整的绘制在图像中。如果换一张图像的直方图统计结果或者将直方图绘制到一个尺寸更小的图像中时,可能需要将统计数据缩小为原来的三十分之一、五十分之一甚至更低。数据缩小比例与统计结果、将要绘制直方图图像的尺寸相关,因此每次绘制时都需要计算数据缩小的比例。另外,由于像素灰度值统计的数目与图像的尺寸具

2021-01-03 13:45:28 1307

转载 C++版本OpenCv教程(二十)图像直方图绘制

图像直方图是图像处理中非常重要的像素统计结果,图像直方图不再表征任何的图像纹理信息,而是对图像像素的统计。由于同一物体无论是旋转还是平移在图像中都具有相同的灰度值,因此直方图具有平移不变性、放缩不变性等优点,因此可以用来查看图像整体的变化形式,例如图像是否过暗、图像像素灰度值主要集中在哪些范围等,在特定的条件下也可以利用图像直方图进行图像的识别,例如对数字的识别。图像直方图简单来说就是统计图像中每个灰度值的个数,之后将图像灰度值作为横轴,以灰度值个数或者灰度值所占比率作为纵轴绘制的统计图。通过直方图可以看

2021-01-03 11:11:21 3020

原创 C++版本OpenCv教程(二十)创建图像窗口滑动条

图像窗口滑动条,顾名思义就是在显示图像的窗口中创建能够通过滑动改变数值的滑动条。有时我们需要动态调节某些参数,以使图像处理的效果更加明显,能够改变参数数值的滑动条可以很好的胜任这项工作。OpenCV 4中通过**createTrackbar()**函数在显示图像的窗口上创建滑动条,该函数的函数原型在代码清单3-54中给出。int cv::createTrackbar(const String & trackbarname, const String &

2021-01-01 23:32:32 864

转载 C++版本OpenCv教程(十九)图像金字塔

高斯金字塔构建图像的高斯金字塔是解决尺度不确定性的一种常用方法。高斯金字塔是指通过下采样不断的将图像的尺寸缩小,进而在金字塔中包含多个尺度的图像,高斯金字塔的形式如图3-30所示,一般情况下,高斯金字塔的最底层为图像的原图,每上一层就会通过下采样缩小一次图像的尺寸,通常情况尺寸会缩小为原来的一半,但是如果有特殊需求,缩小的尺寸也可以根据实际情况进行调整。由于每次图像的尺寸都缩小为原来的一半,图像尺缩小的速度非常快,因此常见高斯金字塔的层数为3到6层。OpenCV 4中提供了**pyrDown()**函数专

2021-01-01 22:14:32 1535

MATLAB/Simulink中的的S函数的应用

该文档详细介绍了MATLAB的simulink中的S函数的应用,讲解的很详细,可以下载学习。

2019-05-25

STM32F103-CAN通讯程序+代码.docx

该文档详细介绍了STM32的CAN通讯部分的理论内容,并详细讲解了STM32的CAN通讯过程中的接收部分的滤波的内容,这是传统教程中所没有的,里面附带了CAN通讯的代码,下载过后可以直接使用,可以在显示屏上显示发送和接收数据,并显示发送数据计数。

2019-05-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除