灰度图像--图像分割 Sobel算子,Prewitt算子和Scharr算子平滑能力比较

学习DIP第47天

转载请标明本文出处:http://blog.csdn.net/tonyshengtan ,出于尊重文章作者的劳动,转载请标明出处!文章代码已托管,欢迎共同开发: https://github.com/Tony-Tan/DIPpro

开篇废话

依然是废话,这篇主要想对比下Sobel,Prewitt和Scharr算子的平滑能力,由于一阶微分对噪声响应强,进行微分之前进行降噪是非常必要的,这里我们进行的实验是,以lena图作为实验原图,取其中一行数据作为无噪声的原始信号,分别加上不同的强度的高斯白噪声,对噪声的分类和噪声具体性质的研究将在图像恢复中描述。但这里我们使用不同强度的高斯白噪声。

数学原理

数学原理主要介绍下衡量噪声强度的方法-均方根误差root-mean-square error,第i个测量值与真实值差的平方d2,对d2i进行求和后平均

Re=1n∑ni=1d2i

代码

%matlab代码
clear all;clc;
noise_ratio=3;%噪声的标准差3%
x=imread(‘/Users/Tony/DIPImage/lena‘,‘jpg‘);
signal=double(x(250,:));
noiseImage=uint8(randn(512,512)*2.55*noise_ratio);
dst=x+noiseImage;
figure(1);
imshow(dst);
for m=1:100
    noise=randn(1,512)*2.55*noise_ratio;
    signal_noise=signal+noise;
    for n=2:511
        scharr(n)=signal_noise(n-1)*3./16.+signal_noise(n)*10./16.+signal_noise(n+1)*3./16.;
        sobel(n)=signal_noise(n-1)*0.25+signal_noise(n)*0.5+signal_noise(n+1)*0.25;
        prewitt(n)=signal_noise(n-1)*1./3.+signal_noise(n)*1./3.+signal_noise(n+1)*1./3.;
    end
    d_noise(m)=0;
    d_scharr(m)=0;
    d_sobel(m)=0;
    d_prewitt(m)=0;
    for n=2:511
        d_scharr(m)=(d_scharr(m)+(scharr(n)-signal(n))^2);
        d_sobel(m)=(d_sobel(m)+(sobel(n)-signal(n))^2);
        d_prewitt(m)=(d_prewitt(m)+(prewitt(n)-signal(n))^2);
        d_noise(m)=d_noise(m)+noise(m)^2;
    end
end
x=1:100;
figure(2);
plot(x,d_scharr,‘-r‘,x,d_sobel,‘.-b‘,x,d_prewitt,‘-g‘,x,d_noise,‘-k‘);

Matlab写程序写的不多,所以将就看。

实验结果

下面我们分别使用不同强度的高斯加性白噪声叠加到图像上,并计算

14×[1,2,1],13×[1,1,1],116×[3,10,3]

对叠加了噪声的lena图的第250行数据进行平滑,叠加的噪声的标准差分别是当前信号的0.5%,1%,2%,3%,4%,5%,均值为0下面我们来观察效果。

下面折线图中,为了观察清楚,均方误差未乘以1n,因为所有信号使用的n都相同,图中的黑色线为未处理信号的噪声强度,红色为Scharr算子的结果,绿色为Prewitt算子的结果,蓝色为Sobel算子结果,下面我们来观察结果:

总结

当噪声强度超过标准差为信号的4%时,Sobel和Scharr的性能开始接近,超过5%的时候Prewitt,Sobel,Scharr性能基本相同,但小于3%时候Scharr的性能明显强于Sobel,并且其性能排名为Scharr>Sobel>Prewitt当噪声标准差为0.5%时,误差大概为1个像素左右,此时不进行平滑的结果更好,此时均值平滑的效果最差。

自此简单的评估了下各算子的噪声平滑效果,在小噪声情况下,3×3的算子Scharr算子性能强于Sobel。

待续。。。。

时间: 2024-12-27 00:22:19

灰度图像--图像分割 Sobel算子,Prewitt算子和Scharr算子平滑能力比较的相关文章

灰度图像--图像分割 Sobel算子

学习DIP第44天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan,欢迎大家转载,发现博客被某些论坛转载后,图像无法正常显示,无法正常表达本人观点,对此表示很不满意.有些网站转载了我的博文,很开心的是自己写的东西被更多人看到了,但不开心的是这段话被去掉了,也没标明转载来源,虽然这并没有版权保护,但感觉还是不太好,出于尊重文章作者的劳动,转载请标明出处!!!! 文章代码已托管,欢迎共同开发:https://github.com/Tony-Tan/DIPpro

灰度图像--图像分割 Prewitt算子

学习DIP第45天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan,欢迎大家转载,发现博客被某些论坛转载后,图像无法正常显示,无法正常表达本人观点,对此表示很不满意.有些网站转载了我的博文,很开心的是自己写的东西被更多人看到了,但不开心的是这段话被去掉了,也没标明转载来源,虽然这并没有版权保护,但感觉还是不太好,出于尊重文章作者的劳动,转载请标明出处!!!! 文章代码已托管,欢迎共同开发:https://github.com/Tony-Tan/DIPpro

灰度图像--图像分割 Scharr算子

学习DIP第46天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan ,出于尊重文章作者的劳动,转载请标明出处!文章代码已托管,欢迎共同开发: https://github.com/Tony-Tan/DIPpro ** 开篇废话 感受下markdown的写博客的感觉,好像在写程序一样,果然是程序员的好工具,不过开头怎么没有空格...一空格就自动变成代码了,这让我情何以堪,好吧,以后的文章开头不空格了.本来打算上一篇直接介绍Scharr算子,但是发现Prewi

灰度图像--图像分割 边缘检测算子 综述

转载请标明本文出处:http://blog.csdn.net/tonyshengtan,欢迎大家转载,发现博客被某些论坛转载后,图像无法正常显示,无法正常表达本人观点,对此表示很不满意.有些网站转载了我的博文,很开心的是自己写的东西被更多人看到了,但不开心的是这段话被去掉了,也没标明转载来源,虽然这并没有版权保护,但感觉还是不太好,出于尊重文章作者的劳动,转载请标明出处!!!! 文章代码已托管,欢迎共同开发:https://github.com/Tony-Tan/DIPpro 开篇废话 本来想这

灰度图像--图像分割 Robert算子

学习DIP第43天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan,欢迎大家转载,发现博客被某些论坛转载后,图像无法正常显示,无法正常表达本人观点,对此表示很不满意.有些网站转载了我的博文,很开心的是自己写的东西被更多人看到了,但不开心的是这段话被去掉了,也没标明转载来源,虽然这并没有版权保护,但感觉还是不太好,出于尊重文章作者的劳动,转载请标明出处!!!! 文章代码已托管,欢迎共同开发:https://github.com/Tony-Tan/DIPpro

灰度图像--图像分割 Marr-Hildreth算子(LoG算子)

学习DIP第49天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan ,出于尊重文章作者的劳动,转载请标明出处!文章代码已托管,欢迎共同开发: https://github.com/Tony-Tan/DIPpro 开篇废话 今天介绍二阶微分算子,二阶微分算子典型的是Laplace算子,LoG可以看成是一个高斯模板的拉普拉斯变换,但是也可以从根源上推导出LoG算子,而后面要介绍的DoG则是为了纯粹的减少计算,模拟LoG的一种方法. LoG原理 LoG最底层的原

paper 82:边缘检测的各种微分算子比较(Sobel,Robert,Prewitt,Laplacian,Canny)

不同图像灰度不同,边界处一般会有明显的边缘,利用此特征可以分割图像.需要说明的是:边缘和物体间的边界并不等同,边缘指的是图像中像素的值有突变的地方,而物体间的边界指的是现实场景中的存在于物体之间的边界.有可能有边缘的地方并非边界,也有可能边界的地方并无边缘,因为现实世界中的物体是三维的,而图像只具有二维信息,从三维到二维的投影成像不可避免的会丢失一部分信息:另外,成像过程中的光照和噪声也是不可避免的重要因素.正是因为这些原因,基于边缘的图像分割仍然是当前图像研究中的世界级难题,目前研究者正在试图

灰度图像--图像分割 Canny边缘检测

学习DIP第48天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan ,出于尊重文章作者的劳动,转载请标明出处!文章代码已托管,欢迎共同开发: https://github.com/Tony-Tan/DIPpro 开篇废话 废话开始,Canny大名鼎鼎,大家都称之为Canny算子,包括wiki上也是写的Canny detector,但是按照我的理解,我觉得叫做Canny算法比较合适,但如果叫做算子,那也应该叫做复合算子,因为Canny本身并不是一个线性模板(

Laplace算子和Laplacian矩阵

1 Laplace算子的物理意义 Laplace算子的定义为梯度的散度. 在Cartesian坐标系下也可表示为: 或者,它是Hessian矩阵的迹: 以热传导方程为例,因为热流与温度的梯度成正比,那么温度的梯度的散度就是热量的损失率. 由此可见,Laplace算子可用于表现由于物质分布不均引起的物质输送. 2 Laplace算子的数学意义 现在,在一维空间中简单分析上面的式子: 也可以写作: 把分子第一项和第二项分别按泰勒展开: 可以看出Laplace算子实际上是一个使函数取平均的算子.多维空