两景地基获取的sar数据,matlab格式,下载后对其进行干涉,得到干涉相位后进行滤波处理(附代码)

两景地基获取的sar数据,matlab格式,下载后对其进行干涉,得到干涉相位后进行滤波处理(均值滤波、中值滤波、多视滤波、圆周期中值滤波、圆周期均值滤波)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

数据下载链接:https://pan.baidu.com/s/1u7DUbHD4KJIrCHOALxRntA
提取码:s86z
在这里插入图片描述
均值滤波
中值滤波
多视滤波
圆周期中值滤波
圆周期中值滤波

%% 加载mat数据
clc;clear;
BPImage35=load('BPImage35.mat');
BPImage4=load('BPImage4.mat');
cplx1=BPImage35.BPImage;
cplx2=BPImage4.BPImage;
%% 定义颜色
icolormap = jet(64);
icolormap = icolormap(13:56, :);
%% 干涉相位计算
dph=angle(cplx1.*conj(cplx2)); %共轭相乘,cplx1,cplx2为两幅SAR的SLC数据 
%% 所有滤波方法
OutImage1 = dph;
OutImage2 = mean_fiter(dph, 5);
OutImage3 = mid_fiter(dph, 5);
OutImage4 = multiview_fiter(dph, 5);
OutImage5 = ciciodmean_fiter(dph, 5);
OutImage6 = ciciodmid_fiter(dph, 5);
%% 成果可视化
figure('color', [1,1,1]); %0.94118,1,0.94118
ititle = {'原图', '均值滤波', '中值滤波','多视滤波', '圆周期均值滤波', '圆周期中值滤波'};
for i=1:6
    subplot(2, 3, i);
    colormap(icolormap);
    imagesc( eval(['OutImage', num2str(i)]) );
    title(ititle{i});
    colorbar;
    axis tight %数据范围设为坐标范围
end
suptitle('滤波窗口大小为5*5');
%% 均值滤波
function OutImage = mean_fiter(data, winsize)
[irow, icol] = size(data);
mid = floor(winsize/2);
OutImage = data;
for i=mid+1:irow-mid
	for j=mid+1:icol-mid
		NeighbourArray = data(i-mid:i+mid, j-mid:j+mid);
		OutImage(i, j) = mean2(NeighbourArray);
	end
end
end
%% 中值滤波
function OutImage = mid_fiter(data, winsize)
[irow, icol] = size(data);
mid = floor(winsize/2);
OutImage = data;
for i=mid+1:irow-mid
	for j=mid+1:icol-mid
		NeighbourArray = data(i-mid:i+mid, j-mid:j+mid);
		OutImage(i, j) = median(NeighbourArray(:));
	end
end
end
%% 多视滤波
function OutImage = multiview_fiter(data, winsize)
[irow, icol] = size(data);
mid = floor(winsize/2); a = 0; b = 1;
OutImage = zeros(fix(irow/5), fix(icol/5));
for i=mid+1:winsize:irow-mid
	for j=mid+1:winsize:icol-mid
        NeighbourArray = data(i-mid:i+mid, j-mid:j+mid);
        if j == mid+1
           a = a+1;b = 1;
        end
        OutImage(a,b) = mean2(NeighbourArray);
        b = b+1;
	end
end
end
%% 圆周期均值滤波
function OutImage = ciciodmean_fiter(data, winsize)
[irow, icol] = size(data);
mid = floor(winsize/2);
OutImage = 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) );
		OutImage(i, j) = mean_argexp+angle(sum_exp);
	end
end
OutImage = rem(OutImage+3*pi, 2*pi)-pi;
end
%% 圆周期中值滤波
function OutImage = ciciodmid_fiter(data, winsize)
[irow, icol] = size(data);
mid = floor(winsize/2);
OutImage = 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(:));
		mid_argexp = median(angle(mat_exp(:)/sum_exp) );
		OutImage(i, j) = mid_argexp+angle(sum_exp);
	end
end
OutImage = rem(OutImage+3*pi, 2*pi)-pi;
end

在这里插入图片描述

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

单子沐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值