資源簡介
InSar干涉相位濾波算法MATLAB實現(xiàn)(均值、中值、圓周期),可直接執(zhí)行,附帶測試數(shù)據(jù)
代碼片段和文件信息
%yangzhen
%2019.4.29
%%
clear;
clc;
load?‘data.dat‘
%%
%定義點好看的顏色
icolormap?=?jet(64);
icolormap?=?icolormap(13:56?:);
%%
%綜合測試所有濾波方法
pho1?=?data;
pho2?=?mean_fiter(data?9);
pho3?=?mid_fiter(data?9);
pho4?=?ciciod_fiter(data?9);
%可視化
figure(‘color‘?[111]);
ititle?=?{‘原圖‘?‘均值濾波‘?‘中值濾波‘?‘圓周期濾波‘};
for?i=1:4
????subplot(2?2?i);
????colormap(icolormap);
????imagesc(?eval([‘pho‘?num2str(i)])?);
????title(ititle{i});
????colorbar;
end
suptitle(‘濾波窗口大小為9*9‘);
%%
function?result?=?mean_fiter(data?winsize)
[irow?icol]?=?size(data);
mid?=?floor(winsize/2);
result?=?zeros(irow?icol);
data_exp?=?exp(1i*data);
for?i=mid+1:irow-mid
for?j=mid+1:icol-mid
tempmat?=?data_exp(i-mid:i+mid?j-mid:j+mid);
result(i?j)?=?angle(?sum(tempmat(:))?);
end
end
end
%%
function?result?=??mid_fiter(data?winsize)
[irow?icol]?=?size(data);
mid?=?floor(winsize/2);
result?=?zeros(irow?icol);
data_sin?=?sin(data);
data_cos?=?cos(data);
for?i=mid+1:irow-mid
for?j=mid+1:icol-mid
mat_sin?=?data_sin(i-mid:i+mid?j-mid:j+mid);
mat_cos?=?data_cos(i-mid:i+mid?j-mid:j+mid);
result(i?j)?=?angle(?median(mat_cos(:))+median(1i*mat_sin(:))?);
????end
end
end
%%
function?result?=?ciciod_fiter(data?winsize)
[irow?icol]?=?size(data);
mid?=?floor(winsize/2);
result?=?zeros(irow?icol);
data_exp?=?exp(1i*data);
for?i=mid+1:irow-mid
for?j=mid+1:icol-mid
mat_exp?=?data_exp(i-mid:i+mid?j-mid:j+mid);
sum_exp?=?sum(mat_exp(:));
mean_argexp?=?mean2(?angle(mat_exp/sum_exp)?);
result(i?j)?=?mean_argexp+angle(sum_exp);
end
end
result?=?rem(result+11*pi?2*pi)-pi;
end
%%
- 上一篇:Matlab 2012a安裝教程
- 下一篇:數(shù)學(xué)建模紅樓夢
評論
共有 條評論