一种稳健的自适应图像平滑算法(芮杰等)
来源:互联网 发布:c 游戏编程 百度网盘 编辑:程序博客网 时间:2024/05/22 06:51
平滑算法1:
%roburstmedfilt1.mfunction [y]=roburstmedfilt1(x,a,b)x=double(x);y=x;[m,n]=size(x);k=floor(a/2)+1;for i=k:m+1-k for j=k:n+1-k z=zeros(1,4*k^2-4*k); num=1; for i1=i-k+1:i+k-1 for j1=j-k+1:j+k-1 if i1==i & j1==j continue; end z(1,num)=x(i1,j1); num=num+1; end end %z即为不含中心像素的行向量 zmax=max(z); zmin=min(z); %中心像素为噪声点 if x(i,j) > zmax y(i,j) = zmax; end %中心像素为噪声点 if x(i,j) < zmin y(i,j) = zmin; end if x(i,j) < zmax & x(i,j) > zmin y(i,j) = x(i,j); end endend
平滑算法2:
%roburstmedfilt2.mfunction [y]=roburstmedfilt2(x,a,b)x=double(x);y=x;[m,n]=size(x);k=floor(a/2)+1;for i=k:m+1-k for j=k:n+1-k num=0; num1=1; %统计窗口范围内和中心灰度值不相等的像素个数 for i1=i-k+1:i+k-1 for j1=j-k+1:j+k-1 if x(i1,j1)~= x(i,j); num=num+1; end end end z=zeros(1,num);%来存储与中心像素不等的行向量,共计num个 for i1=i-k+1:i+k-1 for j1=j-k+1:j+k-1 if x(i1,j1)~= x(i,j); z(1,num1) = x(i1,j1); num1=num1+1; end end end %z即为与中心像素值不等的像素构成的行向量 zmax=max(z); zmin=min(z); zmed=median(z); if x(i,j) > zmax if zmed < zmax & zmed > zmin%检验中值是否是脉冲 y(i,j) = zmed; else y(i,j) = zmax; end end if x(i,j) < zmin if zmed < zmax & zmed > zmin y(i,j) = zmed; else y(i,j) = zmin; end end if x(i,j) < zmax & x(i,j) > zmin y(i,j) = x(i,j); end endend主函数:
I=imread('1.png');I=rgb2gray(I);[e f]=size(I);J=imnoise(I,'salt & pepper',0.7);%J=imnoise(I,'gaussian',0,0.0002);%%第一种算法在保持边缘和细节较第二种算法要差一点l=roburstmedfilt1(J,3,3);%第一种稳健平滑滤波器l1=roburstmedfilt2(J,3,3);%第二种稳健平滑滤波器l2=commonfilt2(J,3,3);%普通的中值滤波器subplot(131),imshow( uint8(l) ),title('第一种稳健平滑滤波器');subplot(132),imshow( uint8(l1) ),title('第二种稳健平滑滤波器');subplot(133),imshow( uint8(l2) ),title('普通的中值滤波器');% 计算三种算法的峰值信噪比B=8; %编码一个像素用多少二进制位MAX=2^B-1; %图像有多少灰度级I=double(I);l=double(l);l1=double(l1);l2=double(l2);%%%%%% psnr1=MES1=sum(sum((I-l).^2))/(e*f); %自适应中值去噪的均方差PSNR1=20*log10(MAX/sqrt(MES1)); %自适应中值算法去噪的峰值信噪比%%%%%% psnr2=MES2=sum(sum((I-l1).^2))/(e*f); %自己编写的中值去噪的均方差PSNR2=20*log10(MAX/sqrt(MES2)); %自己编写的中值去噪的峰值信噪比%%%%%% psnr3=MES3=sum(sum((I-l2).^2))/(e*f); %自己编写的中值去噪的均方差PSNR3=20*log10(MAX/sqrt(MES3)); %自己编写的中值去噪的峰值信噪比
- 一种稳健的自适应图像平滑算法(芮杰等)
- 一种自适应的图像二值化
- 一种新型的数据平滑滤波算法
- C++关于平滑滤波的一种算法
- 灰度图像的加权平均平滑算法
- 图像空域平滑算法
- 用于图像处理的自适应中值滤波(张旭明等)
- 一种快速自适应的图像二值化方法介绍 (Wellner 1993)
- 一种快速自适应的图像二值化方法介绍 (Wellner 1993)
- 一种快速自适应的图像二值化方法介绍 (Wellner 1993)
- 图像的邻域运算(平滑)
- 图像二直化之一种快速自适应图像二值化算法(Wellner 1993)
- 基于L0范数平滑的图像漫画特效生成算法
- 一种图像去噪算法的实现
- 一种莫名的图像修复算法
- 一种三角函数权重的图像拼接算法
- 一种快速收敛的自适应算法求解最小包围盒(OBB)
- 一种改进的自适应快速AF-DBSCAN聚类算法
- Uml 之 用例图
- 带记忆功能的函数
- 目录扫描程序详解
- spoj cot Count on a tree
- 【Android】判断某个App是否安装并启动(queryIntentActivities),
- 一种稳健的自适应图像平滑算法(芮杰等)
- JAVA-容器(一)
- UVA - 763 Fibinary Numbers
- Mahout源码分析之DistributedLanczosSolver(4)--rawEigen
- linux bc命令使用
- struts2 18拦截器详解(三) --- AliasInterceptor
- Max Sum
- 存储容量问题
- Java容器(二)