頻率域濾波去除週期性噪聲
傅立葉變換後的頻率域去噪
%快速傅立葉變換函式及逆變換函式測試程式
tic
filename='periodic_noise.dat';
Re=IMG_Read(filename);
img=cell2mat(Re(5));%獲取影像矩陣引數
t1=myfft(img);%一維橫向變換
f=myfft(t1.');%縱向變換
[m,n]=size(f);
[M,N]=size(img);
f=myfftshift(f); %使影像對稱,中心化
r=real(f); %影像頻域實部
i=imag(f); %影像頻域虛部
Margin=log(sqrt(r.^2+i.^2)); %影像幅度譜,加log便於顯示
phase=real(angle(f)*180/pi); %影像相位譜
figure(1)
subplot(1,3,1),imshow(linear1(img)),title('源影像');%拉伸顯示
subplot(1,3,2),imshow(Margin,[]),title('影像幅度譜');
subplot(1,3,3),imshow(phase,[]),title('影像相位譜');
T=5/6*max(max(Margin));%要根據實際情況進行修改
R=10;
coor=[];
for i=1:m-2
for j=1:n-2
if(Margin(i+1,j+1)>T&&sqrt((m/2-i)^2+(j-n/2)^2)>R&&Margin(i+1,j+1)>Margin(i+1,j)&&Margin(i+1,j+1)>Margin(i+1,j+2)&&Margin(i+1,j+1)>Margin(i,j+1)&&Margin(i+1,j+1)>Margin(i+2,j+1))
coor=[coor;i+1,j+1];
end
end
end
d0=findd0(coor,Margin);
H=createH(d0,coor,Margin);
F=f.*H;
%逆變換
g=myifft(F);
k=myifft(g.');
k=k(1:M,1:N);
figure(2)
imshow(linear2(k)),%拉伸顯示原影像
title('逆變換結果')
toc
function H=createH(d0,coor,image)%建立H矩陣,coor指給定的噪聲點中心座標,image指頻譜影像
count=size(coor,1);
[m,n]=size(image);
d=zeros(m,n,count/2);
H=ones(m,n);
D0=zeros(count/2,1);
for i=1:m
for j=1:n
for k=1:count/2
d(i,j,k)=sqrt((i-coor(k,1))^2+(j-coor(k,2))^2)*sqrt((i-coor(count-k+1,1))^2+(j-coor(count-k+1,2))^2);
D0(k,1)=d0(k,1)^2;
end
for k=1:count/2
if(d(i,j,k)==0)
H(i,j)=0;
else
H(i,j)=H(i,j)/(1+(D0(k,1)/d(i,j,k))^2);
end
end
end
end
end
function d = findd0(coor,image)%根據給出的座標大概確定截止半徑,coor指給定的噪聲點中心座標
[M,N]=size(image);
k=size(coor,1);
dis=[];
for i=1:k%迴圈座標個數
x=coor(i,1);%獲取x座標
y=coor(i,2);%獲取y座標
while(image(x,y+1)<image(x,y))%找出距最近的極小點
y=y+1;
end
dis=[dis;M/2+1-coor(i,1)];%算出距離儲存
end
d=dis;
end
執行截圖:
原影像
幅度譜圖:
相位譜圖:
去噪後影像:
總結:
1頻率域變換問題關鍵在於如何準確找到噪聲點的位置。這裡可以用類似矩陣掃描的方法找出某個點,其滿足大於其上下左右各點的值(找到極大值點),同時滿足大於某個閾值,我給定的是大於影像均值(中心點亮度)的4/5左右,即可確定準確的座標位置。進而用巴特沃斯濾波進行處理。
2.確定合適的截止半徑很重要。即函式function d = findd0(coor,image)。大概是噪聲中心到頻譜圖中心的距離。
參考文獻:
論文:影像線狀和網格狀噪聲的去除方法
陶勝
(集美大學理學院,福建廈門361021)
中圖分類號:TP391.4 文獻標識碼:A 文章編號:2095—7726(2018)03—0032—05
相關文章
- 頻率域濾波基本操作
- 05 -2 Scipy中 face()新增噪聲、濾波器的使用、
- 影像處理技術(二)濾波去噪(上)
- 【OpenCV】鄰域濾波:方框、高斯、中值、雙邊濾波OpenCV
- OpenCV 線性濾波OpenCV
- 圖片上的噪點怎麼去除?專業影像降噪濾鏡Noiseware
- Unity元件:AudioChorusFilterPROonly音訊合聲濾波器Unity元件Filter音訊
- 關於定時器週期、頻率等相關計算定時器
- 如何確定合適的績效考核週期和頻率?
- 感測器噪聲
- 高斯噪聲模擬
- 關於fNIRS帶通濾波頻段選擇
- 時間序列平穩性、白噪聲、隨機遊走隨機
- [Python影象處理] 四.影象平滑之均值濾波、方框濾波、高斯濾波及中值濾波Python
- 均值濾波
- OpenCV計算機視覺學習(4)——影像平滑處理(均值濾波,高斯濾波,中值濾波,雙邊濾波)OpenCV計算機視覺
- 通道均衡之線性均衡——迫零濾波器
- 取樣頻率、時間、聲道、量化、儲存大小
- 影像噪聲學習記錄(1)
- Shader 中的隨機與噪聲隨機
- 數字濾波器和模擬濾波器(一)
- 圖片濾波
- 貝葉斯與卡爾曼濾波(1)--三大機率
- Book of Shaders 04 - 網格噪聲:Worley Noise
- [快速閱讀九] 自適應中值濾波及保守濾波在去除椒鹽噪音或脈衝噪音上的應用。
- 卡爾曼濾波
- vivado fir濾波器
- 引導濾波GuidedFilterGUIIDEFilter
- 點雲濾波器與過濾器過濾器
- 利用噪聲構建美妙的 CSS 圖形CSS
- 應用噪聲函式製作火焰特效函式特效
- Vivado使用技巧(16):SSN轉換噪聲分析
- 濾波演算法——十大濾波演算法程式大全演算法
- 【譯】WebAPI,Autofac,以及生命週期作用域WebAPI
- spring bean的作用域和生命週期SpringBean
- jmeter 壓測時,tps 和 RT 週期性的波動,是 jmeter 本身的問題嗎?JMeter
- 空域濾波演算法演算法
- LMS自適應濾波