本文主要為代碼展示,未對(duì)所用算法進(jìn)行較為詳細(xì)的文字介紹,請(qǐng)讀者見諒。如有建議,歡迎私信。
1、給圖像添加噪聲
? MATLAB調(diào)用格式為:
J=imnoise(I,type)或者J=imnoise(I,type,parameters)。將類型噪聲添加到灰度圖像。
其中,I為原始圖像,J為有噪圖像,參數(shù)type和parameters用于確定噪聲類型和相應(yīng)的參數(shù)。類型是以下字符串:
‘guassian’添加高斯噪聲;
‘salt&pepper’添加鹽和胡椒的噪音;
‘specle’添加乘法噪聲。
例:
J=imnoise(I, ‘guassian’,M,V)向圖像I添加均值為M,方差為V的高斯白噪聲。默認(rèn)均值為0,方差為0.01的噪聲。
J=imnoise(I, ‘salt&pepper’,D)向圖像I添加強(qiáng)度為D的椒鹽噪聲,默認(rèn)強(qiáng)度為0.05。
J=imnoise(I, ‘specle’,V)使用J=I+n*I將乘性噪聲添加到圖像I,其中n是均勻分布的隨機(jī)噪聲,均值為0,方差為V。均值V默認(rèn)為0.04。
2、均值濾波
代碼如下:
close all;
clear;
clc;
img = imread('圖片'); % 讀取彩色圖像
% 定義一個(gè)3x3的平均值濾波器
h = fspecial('average', [3 3]);
% 對(duì)彩色圖像進(jìn)行濾波
filtered_img = imfilter(img, h);
% 顯示原始圖像和濾波后的圖像
subplot(1,2,1), imshow(img), title('原始圖像');
subplot(1,2,2), imshow(filtered_img), title('濾波后的圖像');
?具體效果如圖所示:
?3、中值濾波
代碼如下:
close all;
clear;
clc;
I = imread('圖片'); % 讀取彩色圖像
J=imnoise(I,'gaussian',0,0.01);%向圖像I添加均值為0,方差為0.01的高斯白噪聲。
img=imnoise(J,"salt & pepper",0.05);%向圖像I添加強(qiáng)度為0.05的椒鹽噪聲。
% 對(duì)紅、綠、藍(lán)三個(gè)通道分別進(jìn)行中值濾波
r1 = medfilt2(img(:,:,1), [3 3]);%3*3窗口
g1 = medfilt2(img(:,:,2), [3 3]);
b1 = medfilt2(img(:,:,3), [3 3]);
img1 = cat(3, r1, g1, b1);
r2 = medfilt2(img(:,:,1), [5 5]);%5*5窗口
g2 = medfilt2(img(:,:,2), [5 5]);
b2 = medfilt2(img(:,:,3), [5 5]);
img2 = cat(3, r2, g2, b2);
r3 = medfilt2(img(:,:,1), [7 7]);%7*7窗口
g3 = medfilt2(img(:,:,2), [7 7]);
b3 = medfilt2(img(:,:,3), [7 7]);
img3 = cat(3, r3, g3, b3);
% 顯示原始圖像和濾波后的圖像
subplot(2,2,1), imshow(img), title('原始圖像');
subplot(2,2,2), imshow(img1), title('3*3濾波后的圖像');
subplot(2,2,3), imshow(img2), title('5*5濾波后的圖像');
subplot(2,2,4), imshow(img3), title('7*7濾波后的圖像');
?具體效果如圖所示:
?4、空間域低通濾波
代碼如下:
close all;
clear;
clc;
I = imread('圖片'); % 讀取彩色圖像
I=im2double(I);
J=imnoise(I,'gaussian',0,0.01);%向圖像I添加均值為0,方差為0.01的高斯白噪聲。
x=imnoise(J,"salt & pepper",0.05);%向圖像I添加強(qiáng)度為0.05的椒鹽噪聲。
%%%%%%%%%%%%%對(duì)圖像噪聲去噪
h1=[1,1,1;1,1,1;1,1,1];
myfilter1=h1/9;
h2=[1,1,1;1,2,1;1,1,1];
myfilter2=h2/10;
h3=[1,2,1;2,4,2;1,2,1];
myfilter3=h3/16;
% 分離出紅、綠、藍(lán)三個(gè)通道
R = x(:, :, 1);
G = x(:, :, 2);
B = x(:, :, 3);
% 對(duì)三個(gè)通道分別進(jìn)行濾波
R1 = imfilter(R, myfilter1);
G1= imfilter(R, myfilter1);
B1= imfilter(B, myfilter1);
R2 = imfilter(R, myfilter2);
G2= imfilter(R, myfilter2);
B2= imfilter(B, myfilter2);
R3 = imfilter(R, myfilter3);
G3= imfilter(R, myfilter3);
B3= imfilter(B, myfilter3);
% 合并三個(gè)通道
img1 = cat(3, R1, G1, B1);
img2 = cat(3, R2, G2, B2);
img3 = cat(3, R3, G3, B3);
% 顯示原始圖像和濾波后的圖像
figure;
subplot(2, 2, 1), imshow(x), title('原始圖像');
subplot(2, 2, 2), imshow(img1), title('h1濾波后的圖像');
subplot(2, 2, 3), imshow(img2), title('h2濾波后的圖像');
subplot(2, 2, 4), imshow(img3), title('h3濾波后的圖像');
?具體效果如圖所示:
PS:1,通過(guò)對(duì)以上運(yùn)行效果的比對(duì)分析,讀者可以對(duì)三種算法的特征做出一定評(píng)價(jià)。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-737378.html
2,文中所用圖片的原圖為互聯(lián)網(wǎng)圖片。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-737378.html
到了這里,關(guān)于基于MATLAB對(duì)彩色圖像去噪的代碼,均值濾波,中值濾波,空域低通濾波。的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!