数字图像处理-空间滤波
一、實(shí)驗(yàn)原理
空間濾波是一種采用濾波處理的影像增強(qiáng)方法。其理論基礎(chǔ)是空間卷積和空間相關(guān)。目的是改善影像質(zhì)量,包括去除高頻噪聲與干擾,及影像邊緣增強(qiáng)、線性增強(qiáng)以及去模糊等。分為低通濾波(平滑化)、高通濾波(銳化)和帶通濾波。處理方法有計(jì)算機(jī)處理(數(shù)字濾波)和光學(xué)信息處理兩種。
空間濾波器由一個(gè)領(lǐng)域(通常是較小的矩形)和對(duì)該鄰域所包圍圖像像素執(zhí)行的預(yù)定義操作組成。濾波產(chǎn)生一個(gè)新像素,新像素的坐標(biāo)等于鄰域中心的坐標(biāo),像素的值是濾波操作的結(jié)果。如果圖像像素上執(zhí)行的是線性操作,則稱該濾波器為線性空間濾波器,否則,濾波器就稱為非線性空間濾波器。
二、實(shí)驗(yàn)代碼
%空間濾波
function text2_kongjianlvbo(I)
img=imread(I);%讀入圖片
img=rgb2gray(img);%改為二維灰度
figure;subplot(1,3,1);
imshow(img);title('原始圖像');
%加入高斯噪聲和椒鹽噪聲
f1=imnoise(img,'gaussian');
subplot(1,3,2);
imshow(f1);title('添加高斯噪聲');
f2=imnoise(f1,'salt & pepper');
subplot(1,3,3);
imshow(f2);title('添加椒鹽噪聲');
f2=double(f2);
[M,N]=size(f2);%讀取長和寬
%比較集中均值濾波和中值濾波的濾波結(jié)果
%算術(shù)均值濾波
n=5;%模板大小
f11=f2;
for i=1:M-n+1
??? for j=1:N-n+1
??????? g1=f2(i:i+n-1,j:j+n-1);
??????? s1=sum(sum(g1));%中心點(diǎn)的值用子圖像的算術(shù)均值代替
??????? f11(i+(n-1)/2,j+(n-1)/2)=s1/(n*n);
??? end
end
img1=uint8(f11);
figure;
subplot(1,2,1);
imshow(img1);
title('算術(shù)均值濾波結(jié)果');
%幾何均值濾波器
n=5;%模板大小
AI=ones(M,N);
f21=f2 + 1;%防止有個(gè)像素點(diǎn)為0而導(dǎo)致乘積為0
f12=f21;
for i=1:M-n+1
??? for j=1:N-n+1
??????? g2=f21(i:i+n-1,j:j+n-1);
??????? s2=prod(g2(:));%中心點(diǎn)的值用子圖像的幾何均值代替
??????? f12(i+(n-1)/2,j+(n-1)/2)=s2.^(1/numel(g2));
??? end
end
img2=uint8(f12);
subplot(1,2,2);
imshow(img2);
title('幾何均值濾波結(jié)果');
figure;
%中值濾波器
img3=uint8(medfilt2(f2,[5,5]));%中值濾波函數(shù)
subplot(1,2,1);
imshow(img3);title('中值濾波結(jié)果');
%修正的阿爾法均值濾波器
n=5;
d=5;%去掉最值灰度值的個(gè)數(shù)
f13=f2;
for i=1:M-n+1
??? for j=1:N-n+1
??????? g3=f2(i:i+n-1,j:j+n-1);
??????? g3=sort(g3(:));%對(duì)領(lǐng)域內(nèi)的像素點(diǎn)進(jìn)行排序
??????? min_num=ceil(d/2);%去掉最小灰度值的個(gè)數(shù)
??????? max_num=floor(d/2);%去掉最大灰度的個(gè)數(shù)
??????? %去掉d個(gè)最值灰度級(jí)后求算術(shù)均值
??????? g3(1:min_num)=zeros(min_num,1);
??????? g3(n-max_num+1:n)=zeros(max_num,1);
??????? s3=sum(g3);
??????? %中心點(diǎn)的值用子圖像的算術(shù)均值代替
??????? f13(i+(n-1)/2,j+(n-1)/2)=s3/(n*n-d);
??? end
end
img4=uint8(f13);
subplot(1,2,2);
imshow(img4);title('修正的阿爾法均值濾波結(jié)果');
%比較中值濾波器及自適應(yīng)中值濾波器的濾波結(jié)果
f2=imnoise(img,'salt & pepper');
figure;
subplot(1,2,1);
imshow(img);title('原圖');
subplot(1,2,2);
imshow(f2);title('添加椒鹽噪聲的圖像');
figure;
%中值濾波器
img5=uint8(medfilt2(f2,[5,5]));%中值濾波函數(shù)
subplot(1,2,1);
imshow(img5);title('中值濾波結(jié)果');
%自適應(yīng)中值濾波器
f14=f2;
alreadyPro=false(size(f2));%看是否完成進(jìn)程
Smax=5;%最大窗口尺寸
for s=3:2:Smax %起始窗口尺寸設(shè)為3
??? %得到特定的灰度值
??? zmin=ordfilt2(f2,1,ones(s,s),'symmetric');
??? zmax=ordfilt2(f2,s*s,ones(s,s),'symmetric');
??? zmed=medfilt2(f2,[s,s],'symmetric');
??? %進(jìn)程B
??? processB=(zmed>zmin)&(zmax>zmed)&~alreadyPro;
??? %進(jìn)程A
??? processA=(f2>zmin)&(zmax>f2);
??? outZxy=processB & processA;
??? outZmed=processB & ~processA;
??? f14(outZxy)=f2(outZxy);
??? f14(outZmed)=zmed(outZmed);
??? alreadyPro=alreadyPro|processB;
??? if all(alreadyPro(:))
??????? break;
??? end
end
f14(~alreadyPro)=zmed(~alreadyPro);
img6=uint8(f14);
subplot(1,2,2);
imshow(img6);title('自適應(yīng)中值濾波結(jié)果');
end?
三、實(shí)驗(yàn)結(jié)果及分析
?由濾波結(jié)果,我們可以看出,對(duì)于添加了高斯噪聲和椒鹽噪聲的圖像,算術(shù)均值和幾何均值濾波器的效果比較差,尤其是幾何均值濾波器;而中值濾波器和修正后的阿爾法均值濾波器的降噪效果比前面兩種濾波器的效果要好很多,修正的阿爾法均值濾波器的效果較好,使圖像變得更平滑。中值濾波器和自適應(yīng)中值濾波器進(jìn)行比較,兩者的降噪效果都不錯(cuò),不過中值濾波器導(dǎo)致了原始圖像細(xì)節(jié)的丟失,而自適應(yīng)中值濾波器則很好地保持了原始圖像的清晰度和細(xì)節(jié)。
總結(jié)
以上是生活随笔為你收集整理的数字图像处理-空间滤波的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 团队工作制度
- 下一篇: 机器人学导论原书第三版