日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数字图像处理-空间滤波

發(fā)布時間:2023/12/14 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数字图像处理-空间滤波 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、實驗原理

空間濾波是一種采用濾波處理的影像增強方法。其理論基礎是空間卷積和空間相關。目的是改善影像質量,包括去除高頻噪聲與干擾,及影像邊緣增強、線性增強以及去模糊等。分為低通濾波(平滑化)、高通濾波(銳化)和帶通濾波。處理方法有計算機處理(數(shù)字濾波)和光學信息處理兩種。

空間濾波器由一個領域(通常是較小的矩形)和對該鄰域所包圍圖像像素執(zhí)行的預定義操作組成。濾波產(chǎn)生一個新像素,新像素的坐標等于鄰域中心的坐標,像素的值是濾波操作的結果。如果圖像像素上執(zhí)行的是線性操作,則稱該濾波器為線性空間濾波器,否則,濾波器就稱為非線性空間濾波器。

二、實驗代碼

%空間濾波

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);%讀取長和寬

%比較集中均值濾波和中值濾波的濾波結果

%算術均值濾波

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));%中心點的值用子圖像的算術均值代替

??????? 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('算術均值濾波結果');

%幾何均值濾波器

n=5;%模板大小

AI=ones(M,N);

f21=f2 + 1;%防止有個像素點為0而導致乘積為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(:));%中心點的值用子圖像的幾何均值代替

??????? 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('幾何均值濾波結果');

figure;

%中值濾波器

img3=uint8(medfilt2(f2,[5,5]));%中值濾波函數(shù)

subplot(1,2,1);

imshow(img3);title('中值濾波結果');

%修正的阿爾法均值濾波器

n=5;

d=5;%去掉最值灰度值的個數(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(:));%對領域內(nèi)的像素點進行排序

??????? min_num=ceil(d/2);%去掉最小灰度值的個數(shù)

??????? max_num=floor(d/2);%去掉最大灰度的個數(shù)

??????? %去掉d個最值灰度級后求算術均值

??????? g3(1:min_num)=zeros(min_num,1);

??????? g3(n-max_num+1:n)=zeros(max_num,1);

??????? s3=sum(g3);

??????? %中心點的值用子圖像的算術均值代替

??????? 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('修正的阿爾法均值濾波結果');

%比較中值濾波器及自適應中值濾波器的濾波結果

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('中值濾波結果');

%自適應中值濾波器

f14=f2;

alreadyPro=false(size(f2));%看是否完成進程

Smax=5;%最大窗口尺寸

for s=3:2:Smax %起始窗口尺寸設為3

??? %得到特定的灰度值

??? zmin=ordfilt2(f2,1,ones(s,s),'symmetric');

??? zmax=ordfilt2(f2,s*s,ones(s,s),'symmetric');

??? zmed=medfilt2(f2,[s,s],'symmetric');

??? %進程B

??? processB=(zmed>zmin)&(zmax>zmed)&~alreadyPro;

??? %進程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('自適應中值濾波結果');

end?

三、實驗結果及分析

?由濾波結果,我們可以看出,對于添加了高斯噪聲和椒鹽噪聲的圖像,算術均值和幾何均值濾波器的效果比較差,尤其是幾何均值濾波器;而中值濾波器和修正后的阿爾法均值濾波器的降噪效果比前面兩種濾波器的效果要好很多,修正的阿爾法均值濾波器的效果較好,使圖像變得更平滑。中值濾波器和自適應中值濾波器進行比較,兩者的降噪效果都不錯,不過中值濾波器導致了原始圖像細節(jié)的丟失,而自適應中值濾波器則很好地保持了原始圖像的清晰度和細節(jié)。

總結

以上是生活随笔為你收集整理的数字图像处理-空间滤波的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。