自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 Opencv(二十)中值滤波

将滤波器范围内所有的像素值按照由小到大的顺序排列,选取排序序列的中值作为滤波器中心处黄色像素的新像素值,之后将滤波器移动到下一个位置,重复进行排序取中值的操作,直到将图像所有的像素点都被滤波器中心对应一遍。当滤波器尺寸为3或5时,图像可以是CV_8U,CV_16U或CV_32F类型,对于较大尺寸的滤波器,数据类型只能是CV_8U。第二个参数是输出图像,输出图像的尺寸和数据类型与输入图像相同。最后一个参数是滤波其的尺寸,区别于之前的线性滤波,中值滤波的滤波器必须是正方形且尺寸为大于1的奇数。

2023-09-16 21:22:45 301 1

原创 Opencv(十九)高斯滤波

该函数第三个参数是高斯滤波器的尺寸,与前面函数不同的是,该函数除了必须是正奇数以外,还允许输入尺寸为0,当输入的尺寸为0时,会根据输入的标准偏差计算滤波器的尺寸。函数第四个和第五个参数为X方向和Y方向的标准偏差,当Y方向参数为0时表示Y方向的标准偏差与X方向相同,当两个参数都为0时,则根据输入的滤波器尺寸计算两个方向的标准偏差数值。高斯噪声是一种常见的噪声,图像采集的众多过程中都容易引入高斯噪声,因此针对高斯噪声的高斯滤波也广泛应用于图像去噪领域。

2023-09-16 20:46:56 1221 1

原创 Opencv(十八)均值滤波

均值滤波将滤波器内所有的像素值都看作中心像素值的测量,将滤波器内所有的像数值的平均值作为滤波器中心处图像像素值。滤波器内的每个数据表示对应的像素在决定中心像素值的过程中所占的权重,由于滤波器内所有的像素值在决定中心像素值的过程中占有相同的权重,因此滤波器内每个数据都相等。第三个参数是滤波器的尺寸,输入滤波器的尺寸后函数会自动确定滤波器;第四个参数为确定滤波器的基准点,默认状态下滤波器的几何中心就是基准点,不过也可以根据需求自由的调整,在均值滤波中调整基准点的位置主要影响图像外推的方向和外推的尺寸;

2023-09-16 20:25:12 374 1

原创 Opencv(十七)直方图均衡化

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

2023-09-16 15:56:40 301 1

原创 Opencv(十六)绘制图像直方图

图像直方图是图像处理中非常重要的像素统计结果,图像直方图不再表征任何的图像纹理信息,而是对图像像素的统计。由于同一物体无论是旋转还是平移在图像中都具有相同的灰度值,因此直方图具有平移不变性、放缩不变性等优点,因此可以用来查看图像整体的变化形式。图像直方图简单来说就是统计图像中每个灰度值的个数,之后将图像灰度值作为横轴,以灰度值个数或者灰度值所占比率作为纵轴绘制的统计图。通过直方图可以看出图像中哪些灰度值数目较多,哪些较少。1、图像直方图的统计函数calcHist()

2023-09-16 10:10:51 123 1

原创 Opencv(十五)创建图像窗口滑动条

该函数能够在图像窗口的上方创建一个范围从0开始的整数滑动条,由于滑动条只能输出整数,如果需要得到小数,必须进行后续处理,例如输出值除以10得到含有1位小数的数据。第三个参数是指向整数变量的指针,该指针指向的值反映滑块的位置,在创建滑动条时该参数确定了滑动块的初始位置,当滑动条创建完成后,该指针指向的整数随着滑块的移动而改变。第五个参数是每次滑块更改位置时要调用的函数的指针。最后一个参数是传递给回调函数的void *类型数据,如果使用的第三个参数是全局变量,可以不用忽略最后一个参数,使用参数的默认值即可。

2023-09-14 21:45:55 260 1

原创 Opencv(十四)图像金字塔

构建图像的高斯金字塔是解决尺度不确定性的一种常用方法。高斯金字塔是指通过下采样不断的将图像的尺寸缩小,进而在金字塔中包含多个尺度的图像。高斯金字塔的最底层为图像的原图,每上一层就会通过下采样缩小一次图像的尺寸,通常情况尺寸会缩小为原来的一半,但是如果有特殊需求,缩小的尺寸也可以根据实际情况进行调整。Opencv中通常使用pyrDown()函数来完成。

2023-09-14 21:34:54 78 1

原创 Opencv(十三)绘制几何图像

使用rectangle()函数来绘制矩形。使用fillPoly()函数来绘制多边形。使用ellipse()函数来绘制椭圆。使用circle()函数来绘制圆形。使用line()函数来绘制直线。

2023-09-14 16:50:10 311 1

原创 Opencv(十二)透视变换

透视变换中,透视前的图像和透视后的图像之间的变换关系可以用一个3×3的矩阵变换矩阵表示,该矩阵可以通过两张图像中四个对应点的坐标求取,因此透视变换又称作“四点变换”。透视变换是一种图像几何变换操作,它可以将一个二维平面上的点映射到另一个二维平面上的相应位置,同时改变原始图像的形状和角度。它可以通过定义透视变换矩阵来实现,该矩阵包含了平移、旋转、缩放和投影等变换操作。该函数两个输入量都是存放浮点坐标的数组,在生成数组的时候需要注意像素点的对应关系,函数的返回值是一个3×3的变换矩阵。

2023-09-07 20:24:49 384

原创 Opencv(十一)仿射变换

函数中第三个参数为前面求取的图像旋转矩阵。仿射变换又称为三点变换,如果知道变换前后两张图像中三个像素点坐标的对应关系,就可以求得仿射变换中的变换矩阵,OpenCV 4提供了利用三个对应像素点来确定矩阵的函数getAffineTransform()。仿射变换的数学表示是先乘以一个线形变换矩阵再加上一个平移向量,其中线性变换矩阵为2×2的矩阵,平移向量为2×1的向量。该函数两个输入量都是存放浮点坐标的数组,在生成数组的时候像素点的输入顺序无关,但是需要保证像素点的对应关系,函数的返回值是一个2×3的变换矩阵。

2023-09-07 19:57:19 803 1

原创 Opencv(十)LUT查找表

当需要与多个阈值进行比较,就需要用到显示查找表(Look-Up-Table,LUT)。LUT查找表简单来说就是一个像素灰度值的映射表,它以像素灰度值作为索引,以灰度值映射后的数值作为表中的内容。例如,一张像素值0到255的灰度图片,灰度值大于0小于100的像素点设置为1,大于等于100小于200的像素点设置为2,大于等于200小于255的图片设置为3。使用LUT()函数用于实现图像像素灰度值的LUT查找表功能。

2023-09-07 15:29:18 227

原创 Opencv(九)图像二值化

图像二值化可以通过选择一个阈值来实现。对于每个像素,将其灰度值与阈值进行比较,如果大于阈值,则将像素值设置为255(白色),否则将像素值设置为0(黑色)。这样,图像中的像素要么为黑色,要么为白色,从而实现了二值化。图像二值化是将一幅图像的所有像素值转换为只有两个值之间的操作。通常情况下,这两个像素值是0和255,分别代表黑色和白色。通常使用threshold()函数来实现图像的二值化。1、threshold()函数。附:选择图像二值化方法的标志。

2023-09-07 14:31:27 749

原创 Opencv(八)两张图像像素的比较

求取两张图像每一位像素较大或者较小灰度值所用到max()、min()函数。寻找图像像素最大值、最小值的函数minMaxLoc()2、寻找图像像素最大值与最小值。1、两张图像的比较运算。

2023-09-07 09:50:12 340

原创 Opencv(七)多通道分离与合并

在图像颜色模型中不同的分量存放在不同的通道中,如果我们只需要处理RGB图像中的红色通道,可以将红色通道从三通道的数据中分离出来再进行处理,这种方式可以减少数据所占据的内存,加快程序的运行速度。前者第二个参数输入的是Mat类型的数组,其数组的长度需要与多通道图像的通道数相等并且提前定义;第二种函数原型的第二个参数输入的是一个vector<Mat>容器,不需要知道多通道图像的通道数。1、多通道分离-----函数split()2、多通道合并-----函数merge()作用 :将多个图像合并成一个多通道图像。

2023-09-05 20:00:46 821 1

原创 Opencv(六)颜色模型与转换

该模型的命名方式是采用三种颜色的英文首字母组成,分别是红色(Red)、绿色(Green)和蓝色(Blue)。每个通道都表示某一种颜色由0到1的过程,不同位数的图像表示将这个颜色变化过程细分成不同的层级,例如8U3C格式的图像每个通道将这个过程量化成256个等级,分别由0到255表示。该函数用来实现将已有图像转换成指定数据类型的图像,第一个参数用于输出转换数据类型后的图像,第二个参数用于声明转换后图像的数据类型,第三个与第四个参数用于声明两个数据类型间的转换关系。(2)不同颜色模型间的相互转换。

2023-09-05 16:25:30 311 2

原创 Opencv(五)图像的读取、显示与保存

第一个参数是声明窗口的名称,用于窗口的唯一识别,第二个参数是声明窗口的属性,主要用于设置窗口的大小是否可调、显示的图像是否填充满窗口等。一般在显示图像前创建一个图像窗口,图像窗口的创建函数为namedWindow。一般在imwrite后面加上一段代码,来验证图像是否保存成功。附件:读取图像的形式参数表。附:窗口属性标志参数表。

2023-09-04 20:43:41 256

原创 Opencv(四)Mat类的赋值

第一行代码创建了一个3×3的矩阵,矩阵中存放的是从1-9的九个整数,先将矩阵中的第一行存满,之后再存入第二行、第三行,即1、2、3存放在矩阵a的第一行,4、5、6存放在矩阵a的第二行,7,8,9存放在矩阵a的第三行。第二行代码的存放方式与第一行代码相同。将需要存入到Mat类中的变量存入到一个数组中,之后通过设置Mat类矩阵的尺寸和通道数将数组变量拆分成矩阵。创建了一个3×3的矩阵,通过for循环的方式,对矩阵中的每一位元素进行赋值。将矩阵中所有的元素都一一枚举出,并用数据流的形式赋值给Mat类。

2023-09-04 19:38:12 2452 1

原创 Opencv(三)Mat类的构造

这种构造方式不需要输入任何的参数,在后续给变量赋值的时候会自动判断矩阵的类型与大小,存储方式比较灵活。其中,type处填写包括CV_8UC1(八位单通道数据)、CV_8UC3(八位三通道数据)2、利用矩阵尺寸和类型参数构造Mat类。1、利用默认构造函数。

2023-09-04 19:22:27 389 1

原创 Opencv(二)认识Mat类

是一种矩阵形式的数据。Opencv中用于储存矩阵数据的类型,与int、double等相同。1、什么是Mat类?

2023-08-30 15:53:07 57

原创 学习Opencv(一)在Windows系统中安装

运行上述程序,环境配置成功就会显示图片。

2023-08-30 15:36:57 165

空空如也

空空如也

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

TA关注的人

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