1. 程式人生 > >經典的同態濾波演算法的優化及其應用引數配置。

經典的同態濾波演算法的優化及其應用引數配置。

% 同態濾波器 % ImageIn - 需要進行濾波的灰度影象 % High - 高頻增益,需要大於1 % Low - 低頻增益,取值在0和1之間 % C - 銳化係數 % Sigma - 截止頻率,越大影象越亮 % 輸出為進行濾波之後的灰度影象 function [ImageOut] = HomoFilter(ImageIn, High, Low, C, Sigma) Img = double(ImageIn); % 轉換影象矩陣為雙精度型,不會改變資料本身 [Height, Width]
= size(ImageIn); % 返回的行數和列數 CenterX = floor(Width / 2); % 中心點座標 CenterY = floor(Height / 2); LogImg = log(Img + 1); % 影象對數資料 Log_FFT = fft2(LogImg); % 傅立葉變換 for Y = 1 : Height for X = 1 : Width Dist= (X - CenterX) * (X - CenterX) + (Y - CenterY) * (Y - CenterY); % 點(X,Y)到頻率平面原點的距離 H(Y, X)
=(High - Low) * (1 - exp(-C * (Dist / (2 * Sigma * Sigma)))) + Low; % 同態濾波器函式 end end H = ifftshift(H); % 對H做反中心化 Log_FFT = H.* Log_FFT; % 濾波,矩陣點乘 Log_FFT
= ifft2(Log_FFT); % 反傅立葉變換 Out = exp(Log_FFT)-1; % 取指數 % 指數處理ge = exp(g)-1;% 歸一化到[0, L-1] Max = max(Out(:)); Min = min(Out(:)); Range = Max - Min; for Y = 1 : Height for X = 1 : Width ImageOut(Y, X) = uint8(255 * (Out(Y, X) - Min) / Range); end end end