1、直方图归一化:
把直方图上每个属性的计数除以所有属性的计数之和,就得到了归一化直方图。之所以叫“归一”,是因为归一化直方图的所有属性的计数之和为1,也就是说,每个属性对应计数都是0到1之间的一个数(百分比)。
Imhist:该函数用于获取直方图图像数据。
[counts,x] = imhist(I):获取直方图的横坐标和纵坐标,即各个像素级,以及每个像素级上的像素出现的次数,counts是直方图的纵坐标值,而x才是直方图的横坐标。
图像直方图归一化:其实就是将纵坐标变成当前次数占总次数的概率,就需要将stem的counts先除以总像素数量就行。
二、直方图均衡化:
把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布。直方图均衡化就是对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范围内的像素数量大致相同。
说简单点,就是把原来的图像的灰度分配均匀,使得0-255都有一定的取值,这样对比度相对大一些,视觉上更好看一点。
可以直接利用 histeq() 函数对图像进行均衡化
三、傅里叶变换:
从纯粹的数学意义上看,傅里叶变换是将一个图像函数转换为一系列周期函数来处理的;从物理效果看,傅里叶变换是将图像从空间域转换到频率域,其逆变换是将图像从频率域转换到空间域。即傅里叶变换的物理意义是将图像的灰度分布函数变换为图像的频率分布函数,傅里叶逆变换是将图像的频率分布函数变换为灰度分布函数。
实际上对图像进行二维傅里叶变换得到的频谱图就是图像梯度的分布图,傅里叶频谱图上看到的明暗不一的亮点,实际上图像上某一点 与邻域点差异的强弱,即梯度的大小,即该点的频率大小。如果频谱图中暗的点数更多,则实际图像是比较柔和的;反之,如果频谱图中亮的点数多,则实际图像是比较尖锐的,边界分明且边界两边像素差异较大。
四、高斯低通滤波:
高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程。
作用:可以去除低频分量,起到图像平滑的作用。
通俗的讲,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。
高斯滤波的具体操作是:用一个模板(或称卷积、掩模)扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度值去替代模板中心像素点的值。
在高斯滤波中,会将中心点的权重值加大,远离中心点的权重值减小,在此基础上计算邻域内各个像素值不同权重的和。
1、高斯低通滤波:
实现原理:
1. 给定一幅大小为m*n的图像f(x,y)。选择适当的填充参数P和Q,一般令P = 2m,Q = 2n。
2. 对图像f(x, y)填充0,填充后得到图像大小为P*Q的图像fp(x, y)。
3. 将图像fp(x,y)移到变换中心(中心化)。
4. 计算fp(x, y)的DFT离散傅里叶变换,得到F(u,v)。
5. 生成一个实的、对称的滤波函数H(u, v),大小为P*Q,中心在(P/2, Q/2)处。然后矩阵点乘得到G(u,v) = H(u,v)F(u,v)。
6. 对G(u, v)反傅里叶变换,然后取实部,再进行反中心变换最后得到gp(x,y)。
7. 提取gp(x,y)左上角的m*n区域,对提取的部分进行标准化处理,得到最终的结果图像g(x,y)。
2、高斯差分DOG:
原理:
五、图像的膨胀与腐蚀:
图像腐蚀、膨胀是基于高亮部分(白色)
操作的,膨胀是对高亮部分进行膨胀,类似“领域扩张”;腐蚀是高亮部分被腐蚀,类似“领域蚕食”。
膨胀腐蚀的应用主要体现在消除噪声、分割独立元素或者连接相邻元素、寻找图像中明显极大值、极小值区域以及求图像的梯度。
1、膨胀:
膨胀的作用:图像膨胀的作用是将目标图像扩大,图像膨胀操作可以用来填补目标区域中某些空洞以及消除包含在目标区域中的小颗粒噪声。
膨胀的算法:
- 用结构元素,扫描图像的每一个元素;
- 用结构元素与其覆盖的二值图像做
与
操作; - 如果有一个为1,结果图像的该元素为1。否则为0。
- 结果:使二值图像扩大一圈
[dst(x,y)=max(x′,y′):element(x′,y′)≠0src(x+x′,y+y′)]
2、腐蚀:
腐蚀的作用:图像腐蚀的作用是将目标图像收缩,消除边界点,使边界点内缩的过程。可以用来消除小且无意义的目标物。
腐蚀的算法:
- 用结构元素,扫描图像的每一个元素;
- 用结构元素与其覆盖的二值图像做
与
操作; - 如果都为1,结果图像的该元素为1。否则为0。
- 结果:使二值图像减小一圈
-
闭运算:对膨胀结果进行腐蚀。
-
开运算:对腐蚀结果进行膨胀。
六、边缘检测算法:
1、Prewitt边缘检测:
Prewitt算子是一种一阶微分算子的边缘检测,利用像素点上下、左右邻点的灰度差,在边缘处达到极值检测边缘,去掉部分伪边缘,对噪声具有平滑作用 。
其原理是在图像空间利用两个方向模板与图像进行邻域卷积来完成的,这两个方向模板一个检测水平边缘,一个检测垂直边缘。
prewitt算子对噪声有抑制作用,抑制噪声的原理是通过像素平均,但是像素平均相当于对图像的低通滤波,低通滤波会造成高频的信息丢失,从而使图像模糊,无论这种程度或大或小,这种操作后的结果是存在的。
2、Sobel边缘检测:
Sobel算法是一个离散的一阶差分算子,用来计算图像亮度函数的一阶梯度之近似值。在图像的任何一点使用此算子,将会产生该点对应的梯度矢量或是其法矢量。
Sobel算子是Prewitt算子的改进形式,改进之处在于sobel算子认为,邻域的像素对当前像素产生的影响不是等价的,所以距离不同的像素具有不同的权值,对算子结果产生的影响也不同。一般来说,距离越远,产生的影响越小。
正因为Sobel算子对于像素的位置的影响做了加权,与Prewitt算子、Roberts算子相比因此效果更好。相比较Prewitt算子,Sobel模板能够较好的抑制(平滑)噪声。 Sobel要比Prewitt更能准确检测图像边缘。
美中不足的是,Sobel算子并没有将图像的主体与背景严格地区分开来,即Sobel算子没有严格地模拟人的视觉生理特征,所以提取的图像轮廓有时并不能令人满意。
3、Candy边缘检测:
Canny算子与其他算子最大的不同体现在,其分别采用了两个不同的阈值对图像中的强边缘和弱边缘进行检测,并且当且仅当弱边缘和强边缘有连接时,才在最后的检测结果中将弱边缘显示出来。
Canny边缘检测算法步骤:
步骤1:用高斯滤波器平滑处理原图像;
步骤2:用一阶偏导的有限差分进行计算梯度的幅值和方向;
图像的边缘有方向和幅度两个属性,沿边缘方向像素变化平缓,垂直于边缘方向像素变化剧烈,边缘上的这种变化可以用微分算子检测出来,通常用一阶或二阶导数来检测边缘。
步骤3:对梯度幅值进行非极大值抑制;
步骤4:用双阈值算法检测和连接边缘;
tips:对于Canny函数的使用,推荐的高低阈值比在2:1到3:1之间
4、Log边缘检测:
拉普拉斯边缘检测算子没有对图像做平滑处理,所以对噪声很敏感。因此可以想到先对图像进行高斯平滑处理,然后再与Laplacian算子进行卷积,这就是高斯拉普拉斯算子。文章来源:https://www.toymoban.com/news/detail-454090.html
文章来源地址https://www.toymoban.com/news/detail-454090.html
到了这里,关于计算机视觉理论一的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!