www.gusucode.com > IPCV_Eval_Kit_R2019a_0ce6858工具箱matlab程序源码 > IPCV_Eval_Kit_R2019a_0ce6858/code/demo_files/I2_03_6_myHomomorphicFiltering.m

    %% Homomorphic Filtering
%   I1 = I  + N     偺宍偱僲僀僘偑忔偭偰偄傞偺偱偼側偔
%   I1 = I .* R     偺宍偱夋憸偑塭嬁傪庴偗偰偄傞応崌乮徠搙曄壔摍乯偵丄R傪庢彍偔
%    N傗R偺廃攇悢偑丄I 偲墦偄応崌
%      Log曄姺傪偡傞偙偲偱丄I惉暘偲R惉暘傪榓偺宍偱暘棧壔
% 徻嵶偼
%   http://blogs.mathworks.com/steve/2013/06/25/homomorphic-filtering-part-1
%   http://blogs.mathworks.com/steve/2013/07/10/homomorphic-filtering-part-2

%% 夋憸偺撉崬傒
I = imread('AT3_1m4_01.tif');
figure;imshow(I);

%% Log曄姺
Id = im2double(I);      % 0~1
Il = log(Id + 1);        % 惓偵偡傞偨傔偵丄1傪壛偊傞

%% 僴僀僷僗 僼傿儖僞 學悢偺愝掕乮Spacial Domain乯
filterRadius = 10;
filterSize = 2*filterRadius + 1;
hLowpass = fspecial('average', filterSize);
hImpulse = zeros(filterSize);
hImpulse(filterRadius+1,filterRadius+1) = 1;
hHPF = hImpulse - hLowpass;      % 儔僾儔僔傾儞宆
figure,freqz2(hHPF)              % 2師尦僼傿儖僞廃攇悢墳摎昞帵

%% 僴僀僷僗 僼傿儖僞 張棟
Ilf = imfilter(Il, hHPF, 'replicate');

%% exp娭悢偱丄Log曄姺傪栠偡丒昞帵
If = exp(Ilf) - 1;
imshowpair(I, If, 'montage'); shg;

%% 廔椆





%% 廃攇悢僪儊僀儞偱偺僼傿儖僞儕儞僌偺椺偼壓婰嶲徠
%%    http://blogs.mathworks.com/steve/2013/06/25/homomorphic-filtering-part-1

% Copyright 2016 The MathWorks, Inc.