資源簡介
圖像處理與分析作業(yè):以lena圖像為例,編程實現(xiàn)小波域維納濾波.
? 首先使用高斯噪聲疊加在原始圖像上。
? 使用分解三次后進(jìn)行維納濾波再逐層返回,使用的是dwt2這個函數(shù)
? [cA,cH,cV,cD]=dwt2(X,' bior2.2')
? 每次進(jìn)行計算的是CH,CV,CD三個高頻分量。
? 計算完之后再和低頻進(jìn)行重構(gòu)復(fù)原。
? 最后對三次維納濾波的結(jié)果和原始圖像做差值,發(fā)現(xiàn)差值基本都是一些邊緣,說明一些高頻的分量在濾波的過程中被濾掉了。但是總體的濾波效果還是不錯的
代碼片段和文件信息
clear?all;
clc;
I?=?imread(‘lena.jpg‘);
I?=?rgb2gray(I);
subplot(231);
imshow(I);
title(‘原始圖像‘);
J1=imnoise(I‘gaussian‘00.01);
subplot(232);
imshow(J1);
title(‘加高斯噪聲圖‘);
K1=wiener2(J1[3?3]);
subplot(233);
imshow(K1);
title(‘系統(tǒng)維納濾波后的圖像‘)
%?(cA?(cH?cV?cD))要注意返回的值,
%?分別為低頻分量,水平高頻,垂直高頻,對角線高頻。高頻的值包含在一個tuple中
[CACHCVCD]?=?dwt2(J1‘bior2.2‘);
[CA2CH2CV2CD2]?=?dwt2(CA‘bior2.2‘);
[CA3CH3CV3CD3]?=?dwt2(CA2‘bior2.2‘);
subplot(234);imshow(CA[]);
title(‘低通分解一次‘);
temp?=?sort(CH3(:));
[colcow]?=?size(CH3);
M?=?CH3(:);%二維矩陣變成一維矩陣
m?=?median(abs(M));%取中值
sigma1?=?m/0.6745;
sigma?=?sum(sum(temp.^2))/(col*cow)?-?sigma1*sigma1;
CH3?=?CH3*(sigma/(sigma1^2+sigma));
temp?=?sort(CV3(:));
[colcow]?=?size(CV3);
M?=?CV3(:);%二維矩陣變成一維矩陣
m?=?median(a
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????137469??2019-12-09?23:49??第十三講作業(yè).pdf
?????文件?????157024??2019-12-09?23:38??維納濾波.png
?????文件??????91814??2019-06-25?09:31??lena.jpg
?????文件???????2796??2019-12-09?23:37??wavelet.m
-----------?---------??----------?-----??----
???????????????389103????????????????????4
評論
共有 條評論