自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大坡3D软件开发

自主操作系统和CPU--用软件来改变世界

原创 在OpenCV里实现膨胀

在前面学习了腐蚀的过程,就是根据结构元素范围里在图片找最小值作为输出,如果把这个找最小值修改一下,改为找最大值,那么这个算法就叫做膨胀了。同样邻域的形状由结构元决定,既然取邻域内的最大值,那么膨胀后的输出图像的总体亮度的平均值比起原图会有所上升,图像中较亮的物体的尺寸会变大;相反,较暗物体的尺寸会...

2019-09-30 21:14:27

阅读数 18

评论数 0

原创 在OpenCV里实现腐蚀

在这里将开始学习形态学,什么是形态学呢?形态学,即数学形态学(mathematical Morphology),是图像处理中应用最为广泛的技术之一,主要用于从图像中提取对表达和描绘区域形状有意义的图像分量,使后续的识别工作能够抓住目标对象最为本质(最具区分能力-most discriminativ...

2019-09-30 18:24:21

阅读数 47

评论数 0

原创 在OpenCV里实现二值图的逻辑运算

在前面学习了阈值分割,这样得到的图像往往是二值图,有了二值图之后就可以利用二值图之间进行逻辑运算,在OpenCV里提供了bitwise_and、bitwise_or、bitwise_xor、bitwise_not这四个按位操作函数。 bitwise_and是对二进制数据进行“与”操作,即对图像(...

2019-09-29 16:53:25

阅读数 81

评论数 0

原创 在OpenCV里实现自适应阈值分割

在图片处理过程中,针对铺前进行二值化等操作的时候,我们希望能够将图片相应区域内所有的信息提供保留。实验室环境下,相应的素材是模板化的,但是将实验室方法应用于现实环境中时,我们会发现光影环境对于效果的影响其实是很大的。在这种情况下进行处理,会使得结果不如人意:一块黑,一块白,且黑的区域的特征无法提取...

2019-09-27 08:27:30

阅读数 58

评论数 0

原创 在OpenCV里实现全局阈值分割5

接着下看THRESH_TRIANGLE算法,三角法求阈值最早见于Zack的论文《Automatic measurement of sister chromatid exchange frequency》主要是用于染色体的研究,该方法是使用直方图数据,基于纯几何方法来寻找最佳阈值,它的成立条件是假设...

2019-09-26 16:11:53

阅读数 14

评论数 0

原创 在OpenCV里实现全局阈值分割4

在前面五种类型里,都是设置根据阈值进行设置的,但是怎么样来决定阈值是多少,那是根据手动来设置的。由于很多情况之下,可能不能人工地设置阈值,那么就需要有算法来根据图像自动计算阈值。在OpenCV里已经有两种自动计算阈值的方法:THRESH_OTSU和THRESH_TRIANGLE。首先来看THRES...

2019-09-26 15:48:25

阅读数 19

评论数 0

原创 在OpenCV里实现全局阈值分割3

接着下来看THRESH_TRUNC类型,这个类型与前面两个类型的区别在于最大值不起作用,而是让大于阈值的像素值全部等于阈值。演示例子如下: #python 3.7.4,opencv4.1 #蔡军生 https://blog.csdn.net/caimouse/article/details/5...

2019-09-25 16:22:18

阅读数 14

评论数 0

原创 在OpenCV里实现全局阈值分割2

接着下来再看THRESH_BINARY_INV类型,它的意思就是与THRESH_BINARY相反,比如大于阈值时THRESH_BINARY设置为最大值,THRESH_BINARY_INV类型设置为0。演示的例子如下: #python 3.7.4,opencv4.1 #蔡军生 https://b...

2019-09-25 08:33:36

阅读数 20

评论数 0

原创 在OpenCV里实现全局阈值分割1

在前面学习了平滑的处理,接着下来将要学习图像分割。当人们观察一个图片时,会把图片里的物体进行分割出来,这样才能知道这张图片里包含有什么物体,然后根据物体的形态进行理解。因此在图像处理里,如果能把图像里的物体分割出来,再进行归类,就可以进一步地进行识别出来。图像分割(image segmentati...

2019-09-24 17:01:21

阅读数 52

评论数 0

原创 在OpenCV里实现导向滤波

前面学习了双边滤波和联合滤波,都可以保边滤波,计算方式比较类似,都是使用相似性权重模板,下面来介绍一种不依赖于权重模板的保边滤波的另外一种方法—导向滤波。导向滤波比前面两种滤波优点有计算速度快,并且细节增强,平滑效果更好。导向图滤波是一种图像滤波技术 ,通过一张引导图G(导向图),对目标图像P(输...

2019-09-23 17:56:37

阅读数 55

评论数 0

原创 在OpenCV里实现联合双边滤波

在前面学习了双边滤波,虽然实现保边平滑的效果,但是平滑效果有时候不如高斯平滑。那么有没有改进的方法呢?这里来回忆一下,前面双边滤波里,使用原图像的灰度相似度作为相似算法,是否可以从这里下手呢?其实是可以的。可以先对原图像进行高斯平滑,然后把这幅图像的灰度值作为计算相似度,替代双边滤波里的原图像相似...

2019-09-23 16:00:34

阅读数 62

评论数 0

原创 在OpenCV里实现双边滤波

前面学习了高斯平滑、均值平滑,在一些图像处理里非常有效果,但是它在去除噪声同时,也把图像的边缘进行模糊。现在就得考虑有没有这样方法,既可以平滑图像,又可以保留图像边缘的信息。我们来回顾一下前面使用的高斯平滑,其实是构造一个正态分布的矩阵,以中心点像素为主,周边距离远的像素为次,这样是按距离进行加权...

2019-09-20 11:59:12

阅读数 42

评论数 0

原创 在OpenCV里实现中值平滑

图像去噪是进行数字图像处理的一个基本环节,而中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术,其基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近真实值,从而消除孤立的噪声点。中值滤波是一种典型的非线性滤波,是基于排序统计理论的一种能够...

2019-09-19 16:57:04

阅读数 46

评论数 0

原创 在OpenCV里实现均值平滑5

从前面来看已经可以把积分图像的功能集成到OpenCV里,那么在它里面也有相应的均值平滑的函数cv2.blur,这个函数实现的功能与前面实现快速计算平滑的方法是一样的,只不过它可以处理彩色图像,因为它可以把彩色图片进行分离成三个颜色的图像进行平滑,再合并回来。它的定义如下: src 输入图像 ...

2019-09-18 16:16:40

阅读数 66

评论数 0

原创 在OpenCV里实现均值平滑4

前面为了说明原理,采用自己实现的积分图像的计算方法,其实这种方法也是OpenCV里实现的算法,那在OpenCV里有没有相同的实现函数呢?这是有的,它就是cv2.integral函数,它的定义如下: 第一个参数src,可以使灰度图或RGB彩色图,单通道和三通道均可作为输入,但每个通道的精度必须...

2019-09-18 15:54:36

阅读数 64

评论数 0

原创 在OpenCV里实现均值平滑3

有了前面的积分图像之后,就可以采用下面的公式来快速地计算均值平滑: 这个公式就是前面计算面积的公式,因此可以把均值平滑的算法写成这样: #python 3.7.4,opencv4.1 #蔡军生 https://blog.csdn.net/caimouse/article/details/...

2019-09-16 18:17:35

阅读数 149

评论数 1

原创 在OpenCV里实现均值平滑2

通过均值可以实现平滑的效果,不过这样采用卷积的方式来计算还是不够快,即使是使用了分离的卷积计算。由于均值的特殊性,可以针对这种卷积计算进行优化。我们知道计算均值就是把所有元素加到一起,然后再除以个数。由于图像很大,而卷积算子很小,那么就相当于一个窗口不断地滑动在图像上,并且计算这个窗口的和,那么有...

2019-09-16 17:11:46

阅读数 370

评论数 0

原创 在OpenCV里实现均值平滑1

前面学习了高斯平滑,其实就是使用卷积对图像的操作,卷积核的数据采用了二维正态分布,那么沿着这个思路,我们来把卷积核修改为不同的方式,那么这样的平滑是否也有意义,也能达到我们的目的呢。在这里就来进行一个修改,前面是使用高斯函数,在这里不使用这个了,而是使用平均值的方式。假设一个卷积核高为h,宽为w的...

2019-09-12 10:54:21

阅读数 122

评论数 0

原创 在OpenCV里实现高斯平滑6

前面可以看到使用分离的高斯卷积核来计算平滑更快,不过前面使用的卷积函数是采用scipy里的,现在我们来采用OpenCV里函数sepFilter2D来计算,它的定义如下: dst=cv.sepFilter2D(src, ddepth, kernelX, kernelY[, dst[, anchor...

2019-09-12 08:21:03

阅读数 285

评论数 0

原创 在OpenCV里实现高斯平滑5

基于可分离的高斯矩阵的卷积,并且计算量还少,那么OpenCV也提供了相应的函数getGaussianKernel来计算高斯平滑,这个函数主要用来计算一维垂直方向的高斯卷积核,它的定义如下: retval=cv.getGaussianKernel(ksize, sigma[, ktype]) 其...

2019-09-11 16:45:11

阅读数 88

评论数 0

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