首页 > 编程知识 正文

均值滤波和中值滤波例题,序列几何均值滤波

时间:2023-05-05 01:46:06 阅读:156861 作者:4549

直接看代码

读取%%原图像,添加高斯噪声image=imread(aft.jpg ); imagen=RGB2gray(image; [width,height]=size(imagen ); R1=rand(width,height ); %用于产生高斯噪声r2=rand(Width,height ); x=0.1*sqrt(-2*log ) R1 ) ).*cos )2*pi*R2 ); %产生噪声的imagen=xdouble(imagen )/255; %为了加入高斯噪声,图像必须为双精度图像=uint8(255 *图像)。 %图像格式subplot (1,3,1 ); imshow(imagen ); title (原始图像); %首先进行平均滤波,观察效果imagen=double(imagen ); k1=3; %k1阶平均滤波imagedd=imagen; a=Ones(K1,k1 ); fori=1: width-k11 forj=1: height-k11 pattern=imagen (I : ik1-1,j:j k1-1 ) ) a; means=sum(sum ) pattern ); imagedd(I(j (K1-1 )/2,j ) K1-1 )/2 )=means/) k1 ); 结束子带(1,3,2 ) imshow(uint8) imagedd ) )均值滤波器) % )再进行自适应均值滤波器,比较imagenn=double ) imagen ); iamgee=double(RGB2gray ) image ); %没有噪声的原图像的灰度imagedd=imagenn; imagemean=imagenn; imagevar=imagenn; n=7; %过滤器阶数为7sigma=(imagenn-iamgee ).^2; %噪声方差fori=1: width-n1 forj=1: height-n1 pattern=imagenn (I : in-1,j:j n-1 ); patterns=reshape(pattern,1,length ) pattern ) : ); means=mean(Patterns; %求平均值的imagemean(I(n-1 )/2,j ) n-1 )/2 )=means; vars=var(Patterns,1 ); %分布式imagevar(I(n-1 )/2,j ) n-1 )/2 )=vars; Endendda=(sigma1); %噪声方差接近0时不处理DC=~da (ABS (sigma-image var )=100 ); %噪声方差接近局部方差时,平均滤波器db=~dc; %imagedd(da )=imagenn (da ) )稍微调整; imagedd(db )=imagemean (db ); imagedd(DC )=imagenn(DC )sigma ) DC )./imagevar ) DC ).* ) imagenn ) DC )-imagemean ) DC ) ); imagedd=uint8(imagedd; subplot (1,3,3 ); imshow(imagedd ); title (自适应平均滤波);

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。