图像平滑算法
1. 在数字图像处理中什么是图像平滑什么是图像锐化
(图象平滑)①目的:降低图像锐度,同时也会去除部分噪声,处理后导致图象模糊;②处理方法:邻域平均法、中值滤波法、多图象平均法,采用取平均值或中值的方法来模糊噪声;③图象边缘及噪声频率都在高频区,用低通滤波法来去噪声。
(图象锐化)①目的:增强图像轮廓和细节,使图象清晰,处理后噪声也会增强;②处理方法:梯度法、拉普拉斯算法、Robert算法,采用微分运算求信号变化率,加强高频分量,使图象轮廓清晰;③图象边缘或线条等细节部分在高频区,用高通滤波让高频分量通过。
2. 图像平滑处理的原理
这个可以使用均值滤波处理,它也叫图像的平滑。均值滤波是典型的线性滤波算法,它是指在图像上对目标像素给一个模板,该模板包括了其周围的临近像素(以目标象素为中心的周围8个象素,构成一个滤波模板,即去掉目标象素本身)。再用模板中的全体像素的平均值来代替原来像素值。
3. 图像处理的算法有哪些
图像处理基本算法操作从处理对象的多少可以有如下划分:
一)点运算:处理点单元信息的运算
二)群运算:处理群单元 (若干个相邻点的集合)的运算
1.二值化操作
图像二值化是图像处理中十分常见且重要的操作,它是将灰度图像转换为二值图像或灰度图像的过程。二值化操作有很多种,例如一般二值化、翻转二值化、截断二值化、置零二值化、置零翻转二值化。
2.直方图处理
直方图是图像处理中另一重要处理过程,它反映图像中不同像素值的统计信息。从这句话我们可以了解到直方图信息仅反映灰度统计信息,与像素具体位置没有关系。这一重要特性在许多识别类算法中直方图处理起到关键作用。
3.模板卷积运算
模板运算是图像处理中使用频率相当高的一种运算,很多操作可以归结为模板运算,例如平滑处理,滤波处理以及边缘特征提取处理等。这里需要说明的是模板运算所使用的模板通常说来就是NXN的矩阵(N一般为奇数如3,5,7,...),如果这个矩阵是对称矩阵那么这个模板也称为卷积模板,如果不对称则是一般的运算模板。我们通常使用的模板一般都是卷积模板。如边缘提取中的Sobel算子模板。
4. 平滑滤波的3×3算法原理
平滑滤波
低频增强的空间域滤波技术
平滑滤波是低频增强的空间域滤波技术。它的目的有两类:一类是模糊;另一类是消除噪音。空间域的平滑滤波一般采用简单平均法进行,就是求邻近像元点的平均亮度值。邻域的大小与平滑的效果直接相关,邻域越大平滑的效果越好,但邻域过大,平滑会使边缘信息损失的越大,从而使输出的图像变得模糊,因此需合理选择邻域的大小。
中文名
平滑滤波
外文名
Smoothing
拼音
píng huá lǜ bō
注音
ㄆㄧㄥˊ ㄏㄨㄚˊㄌㄩˋ ㄅㄛ
滤波目的处理要求滤波原因滤波方法其他方式TA说
滤波目的
滤波的本义是指信号有各种频率的成分,滤掉不想要的成分,即为滤掉常说的噪声,留下想要的成分.这即是滤波的过程,也是目的.
一是抽出对象的特征作为图像识别的特征模式;另一个是为适应图像处理的要求,消除图像数字化时所混入的噪声。
处理要求
一是不能损坏图像的轮廓及边缘等重要信息;二是使图像清晰视觉效果好。
滤波原因
各类图像处理系统在图像的采集、获取、传送和转换(如成像、复制扫描、传输以及显示等)过程中,均处在复杂的环境中,光照、电磁多变,所有的图像均不同程度地被可见或不可见的噪声干扰。噪声源包括电子噪声、光子噪声、斑点噪声和量化噪声。如果信噪比低于一定的水平,噪声逐渐变成可见的颗粒形状,导致图像质量的下降。除了视觉上质量下降,噪声同样可能掩盖重要的图像细节,在对采集到的原始图像做进一步的分割处理时,我们发现有一些分布不规律的椒盐噪声,为此采取相应的对策就是对图像进行必要的滤波降噪处理。
滤波方法
图像的噪声滤波器有很多种,常用的有线性滤波器,非线性滤波器。采用线性滤波如邻域平滑滤波,对受到噪声污染而退化的图像复原,在很多情况下是有效的。但大多数线性滤波器具有低通特性,去除噪声的同时也使图像的边缘变模糊了。而另一种非线性滤波器如中值滤波,在一定程度上可以克服线性滤波器所带来的图像模糊问题,在滤除噪声的同时,较好地保留了图像的边缘信息。
邻域平滑滤波原理
邻域平均法[2]是一种利用Box模版对图像进行模版操作(卷积运算)的图像平滑方法,所谓Box模版是指模版中所有系数都取相同值的模版,常用的3×3和5×5模版如下:
邻域平均法的数学含义是:
(式4-1)
式中:x,y=0,1,…,N-1;S是以(x,y)为中心的邻域的集合,M是S内的点数。
邻域平均法的思想是通过一点和邻域内像素点求平均来去除突变的像素点,从而滤掉一定噪声,其优点是算法简单,计算速度快,其代价会造成图像在一定程度上的模糊。
中值滤波原理
中值滤波[2]就是用一个奇数点的移动窗口,将窗口的中心点的值用窗口内的各点中值代替。假设窗口内有五点,其值为80、90、200、110和120,那么此窗口内各点的中值及为110。
设有一个一维序列f1,f2,…,fn,取窗口长度(点数)为m(m为奇数),对其进行中值滤波,就是从输入序列中相继抽出m个数fi-v,…,fi-1,fi,fi+1,…,fi+v(其中fi为窗口中心值,v=(m-1)/2),再将这m个点按其数值大小顺序排序,取其序号的中心点的那个数作为滤波输出。数学公式表示为:
Yi=Med{fi-v,…,fi-1,fi,fi+1,…,fi+v} i∈N v=(m-1)/2 (式4-2)
Yi称为序列fi-v,…,fi-1,fi,fi+1,…,fi+v的中值
例如,有一序列{0,3,4,0,7},重新排序后为{0,0,3,4,7}则Med{0,0,3,4,7}=3。此列若用平滑滤波,窗口也取5,那么平滑滤波输出为(0+3+4+0+7)/5=2.8。
把一个点的特定长度或形状的邻域称作窗口。在一维情况下,中值滤波器是一个含有奇数个像素的滑动窗口。中值滤波很容易推广到二维,此时可以利用二维形式的窗口。
对于平面图像采用的二维中值滤波可以由下式表示:
(式4-3)
式中:A为窗口,{fij}为二维数据序列,即数字图像各点的灰度值。
对于本系统,由于采集到的是24位真彩色图像,每个像素点分别有R、G、B三个灰度分量,故要在窗口内分别找到这三个分量的中值,分别用这三个中值去代替窗口中心像素点的R、G、B三个灰度分量的值。
5. MATLAB中怎样让一个图像的边缘变平滑
平滑就是要模糊。非黑即白的没法平滑。看样子你的高斯模糊参数已经固定了,不然没法找到边界,对吗?你可以多写几个判断。这个判断的本质是增强了对比度。所以造成锯齿的愿意就是你的判据,也就是那个数字240。这个判据是突变的,不可能没有锯齿。我建议你修改颜色的密度分布,而不是简单的在240一刀切。给你举个例子。算法可以是rgb的数值先开根号再乘以根号下255。这样的结果是rgb数值越来越趋近于255,但是黑色部分保持不变。你体会下。具体算法要看你到底啥需求了
6. 平滑滤波的滤波方法
图像的噪声滤波器有很多种,常用的有线性滤波器,非线性滤波器。采用线性滤波如邻域平滑滤波,对受到噪声污染而退化的图像复原,在很多情况下是有效的。但大多数线性滤波器具有低通特性,去除噪声的同时也使图像的边缘变模糊了。而另一种非线性滤波器如中值滤波,在一定程度上可以克服线性滤波器所带来的图像模糊问题,在滤除噪声的同时,较好地保留了图像的边缘信息。
邻域平滑滤波原理
邻域平均法[2]是一种利用Box模版对图像进行模版操作(卷积运算)的图像平滑方法,所谓Box模版是指模版中所有系数都取相同值的模版,常用的3×3和5×5模版如下:
邻域平均法的数学含义是:
(式4-1)
式中:x,y=0,1,…,N-1;S是以(x,y)为中心的邻域的集合,M是S内的点数。
邻域平均法的思想是通过一点和邻域内像素点求平均来去除突变的像素点,从而滤掉一定噪声,其优点是算法简单,计算速度快,其代价会造成图像在一定程度上的模糊。
中值滤波原理
中值滤波[2]就是用一个奇数点的移动窗口,将窗口的中心点的值用窗口内的各点中值代替。假设窗口内有五点,其值为80、90、200、110和120,那么此窗口内各点的中值及为110。
设有一个一维序列f1,f2,…,fn,取窗口长度(点数)为m(m为奇数),对其进行中值滤波,就是从输入序列中相继抽出m个数fi-v,…,fi-1,fi,fi+1,…,fi+v(其中fi为窗口中心值,v=(m-1)/2),再将这m个点按其数值大小顺序排序,取其序号的中心点的那个数作为滤波输出。数学公式表示为:
Yi=Med{fi-v,…,fi-1,fi,fi+1,…,fi+v} i∈N v=(m-1)/2 (式4-2)
Yi称为序列fi-v,…,fi-1,fi,fi+1,…,fi+v的中值
例如,有一序列{0,3,4,0,7},重新排序后为{0,0,3,4,7}则Med{0,0,3,4,7}=3。此列若用平滑滤波,窗口也取5,那么平滑滤波输出为(0+3+4+0+7)/5=2.8。
把一个点的特定长度或形状的邻域称作窗口。在一维情况下,中值滤波器是一个含有奇数个像素的滑动窗口。中值滤波很容易推广到二维,此时可以利用二维形式的窗口。
对于平面图像采用的二维中值滤波可以由下式表示:
(式4-3)
式中:A为窗口,{fij}为二维数据序列,即数字图像各点的灰度值。
对于本系统,由于采集到的是24位真彩色图像,每个像素点分别有R、G、B三个灰度分量,故要在窗口内分别找到这三个分量的中值,分别用这三个中值去代替窗口中心像素点的R、G、B三个灰度分量的值。
7. 拉普拉斯算子为何能增强图像的边缘
1图像锐化1.1图像锐化的概念在图像增强过程中,通常利用各类图像平滑算法消除噪声,图像的常见噪声主要有加性噪声、乘性噪声和量化噪声等。一般来说,图像的能量主要集中在其低频部分,噪声所在的频段主要在高频段,同时图像边缘信息也主要集中在其高频部分[1]。这将导致原始图像在平滑处理之后,图像边缘和图像轮廓模糊的情况出现。为了减少这类不利效果的影响,就需要利用图像锐化技术,使图像的边缘变得清晰。图像锐化处理的目的是为了使图像的边缘、轮廓线以及图像的细节变得清晰,经过平滑的图像变得模糊的根本原因是因为图像受到了平均或积分运算,因此可以对其进行逆运算(如微分运算)就可以使图像变得清晰。从频率域来考虑,图像模糊的实质是因为其高频分量被衰减,因此可以用高通滤波器来使图像清晰。1.2拉普拉斯算子拉普拉斯算子是一种在图像锐化处理中很重要的算法。拉普拉斯算子是与一个边缘方向无关的边缘点检测算子。它对孤立像素的响应要比对边缘或线的响应更强烈,因此使用该算子进行图像锐化之前需要对图像作平滑处理[2,3]。拉普拉斯算子是一种二阶微分算子。一个连续的二元函数f(x,y),其拉普拉斯运算定义为2f=2f x2+2f
8. 两个图形相减怎样更平滑
两个图形相减更平滑的方法:
1、用选区工具选取图像。
2、点击选择,修改,平滑,可以让边缘平滑。两个图形相减不进行羽化处理,换背景后图像边缘会很生硬,不能融合到新的背景里,进行平滑处理后效果更好。图像平滑方法算法二维自适应维纳滤波很不错。
9. canny算法的算法的实现步骤
Canny边缘检测算法可以分为以下5个步骤: 应用高斯滤波来平滑图像,目的是去除噪声 找寻图像的强度梯度(intensity gradients) 应用非最大抑制(non-maximum suppression)技术来消除边误检(本来不是但检测出来是) 应用双阈值的方法来决定可能的(潜在的)边界 利用滞后技术来跟踪边界 1. 图像平滑(去噪声)
任何边缘检测算法都不可能在未经处理的原始数据上很好地工作,所以第一步是对原始数据与高斯 mask 作卷积,得到的图像与原始图像相比有些轻微的模糊(blurred)。这样,单独的一个像素噪声在经过高斯平滑的图像上变得几乎没有影响。以下为一个5X5高斯滤波器(高斯核,标准差delta=1.4),其中A为原始图像,B为平滑后的图像。
2. 寻找图像中的强度梯度
Canny算法的基本思想是找寻一幅图相中灰度强度变化最强的位置。所谓变化最强,即指梯度方向。平滑后的图像中每个像素点的梯度可以由Sobel算子(一种卷积运算)来获得(opencv中有封装好的函数,可以求图像中每个像素点的n阶导数)。首先,利用如下的核来分别求得沿水平(x)和垂直(y)方向的梯度G_X和G_Y。
K_{GX} = [-1 0 1 ; -2 0 2 ; -1 0 1], K_{GY} = {1 2 1 ; 0 0 0 ; -1 -2 -1}
之后便可利用公式来求得每一个像素点的梯度度量值(gradient magnitude,可能翻译得不准确)。
,有时为了计算简便,也会使用G_X和G_Y的无穷大范数来代替二范数。把平滑后的图像中的每一个点用G代替,可以获得如下图像。从下图可以看出,在变化剧烈的地方(边界处),将获得较大的梯度度量值G,对应的颜色为白色。然而,这些边界通常非常粗,难以标定边界的真正位置。为了做到这一点(参考非极大抑制Non-maximum suppression一节),还必须存储梯度方向,其公式如下图所示。也就是说在这一步我们会存数两块数据,一是梯度的强度信息,另一个是梯度的方向信息。
3. 非极大抑制Non-maximum suppression
这一步的目的是将模糊(blurred)的边界变得清晰(sharp)。通俗的讲,就是保留了每个像素点上梯度强度的极大值,而删掉其他的值。对于每个像素点,进行如下操作:
a) 将其梯度方向近似为以下值中的一个(0,45,90,135,180,225,270,315)(即上下左右和45度方向)
b) 比较该像素点,和其梯度方向正负方向的像素点的梯度强度
c) 如果该像素点梯度强度最大则保留,否则抑制(删除,即置为0)
为了更好的解释这个概念,看下图。
图中的数字代表了像素点的梯度强度,箭头方向代表了梯度方向。以第二排第三个像素点为例,由于梯度方向向上,则将这一点的强度(7)与其上下两个像素点的强度(5和4)比较,由于这一点强度最大,则保留。处理后效果如下图所示。
上图中,可以想象,边界处的梯度方向总是指向垂直于边界的方向,即最后会保留一条边界处最亮的一条细线。
4.双阈值(Double Thresholding)
经过非极大抑制后图像中仍然有很多噪声点。Canny算法中应用了一种叫双阈值的技术。即设定一个阈值上界和阈值下界(opencv中通常由人为指定的),图像中的像素点如果大于阈值上界则认为必然是边界(称为强边界,strong edge),小于阈值下界则认为必然不是边界,两者之间的则认为是候选项(称为弱边界,weak edge),需进行进一步处理。经过双阈值处理的图像如下图所示
上图中右侧强边界用白色表示,弱边界用灰色表示。
5.利用滞后的边界跟踪
这里就不细作解释了。大体思想是,和强边界相连的弱边界认为是边界,其他的弱边界则被抑制。
以上内容均翻译自参考文献【4】
上一个网络版本:
图像中的边缘可能会指向不同的方向,所以 Canny 算法使用 4 个 掩模(mask) 检测水平、垂直以及对角线方向的边缘。原始图像与每个 mask 所作的卷积都存储起来。对于每个点我们都标识在这个点上的最大值以及生成的边缘的方向。这样我们就从原始图像生成了图像中每个点亮度梯度图以及亮度梯度的方向。以下两个公式分别求取高斯滤波后图像的梯度幅值及其方向的表达式。这一步,也叫称为非极大抑制(Non-maximum suppression)。
3. 在图像中跟踪边缘
较高的亮度梯度比较有可能是边缘,但是没有一个确切的值来限定多大的亮度梯度是边缘多大又不是,所以 Canny 使用了滞后阈值。
滞后阈值(Hysteresis thresholding) 需要两个阈值,即高阈值与低阈值。假设图像中的重要边缘都是连续的曲线,这样我们就可以跟踪给定曲线中模糊的部分,并且避免将没有组成曲线 的噪声像素当成边缘。所以我们从一个较大的阈值开始,这将标识出我们比较确信的真实边缘,使用前面导出的方向信息,我们从这些真正的边缘开始在图像中跟踪 整个的边缘。在跟踪的时候,我们使用一个较小的阈值,这样就可以跟踪曲线的模糊部分直到我们回到起点。
一旦这个过程完成,我们就得到了一个二值图像,每点表示是否是一个边缘点。
一个获得亚像素精度边缘的改进实现是在梯度方向检测二阶方向导数的过零点,它在梯度方向的三阶方向导数满足符号条件。
滞后阈值也可以用于亚像素边缘检测。
10. 如何进行图像进行直方图平滑处理,请描述具体的算法过程
width=dlg.m_width;
delta=dlg.m_delta;
sqdelta=delta*delta;
for(i=0;i<256;i++)
{
coef=1.0;
for(j=1;j<width;j++)
{
weight=(float)exp(-0.5*j*j*sqdelta);
if((i+j)<256)
{
coef+=weight;
m_Dib.probability[i]+=(prob[i+j]*weight);
}
if((i-j)>=0)
{
coef+=weight;
m_Dib.probability[i]+=(prob[i-j]*weight);
}
}
m_Dib.probability[i]/=coef;
}
sum=0;
for(i=0;i<256;i++)
sum+=m_Dib.probability[i];
for(i=0;i<256;i++)
m_Dib.probability[i]=(float)(m_Dib.probability[i]/sum);