目录
- 一、算法原理
- 1、概述
- 2、时域多视滤波
- 3、频域多视滤波
- 4、参考文献
- 二、代码实现
- 1、时域多视滤波
- 三、结果展示
- 四、相关链接
一、算法原理
1、概述
单视复数数据(Single Look Comple)是原始的最高分辨率数据,但是从单个像元散射的雷达回波信号的相干叠加,导致强度信息有很多噪声。SAR的多视处理是对SLC数据方位向和/或距离向做平均,得到的结果是多视后的强度数据。多视处理可以提高SAR图像的信噪比,有效抑制斑点噪声,但是会降低方位分辨率。
卫星在侧视获取数据的时候,由于入射角、地面和天线的距离决定数据的分辨率不同,SAR数据的像元一般是长方形的。但是参考DEM数据一般是处理之后像素为正方形的栅格数据,这就导致运算的时候计算量过大,所以需要设置多视比,将SAR数据的像元尽可能像正方形,大小贴合参考DEM数据。
有两种多视方法,一种在时域执行,另一种在频域执行。时域多视由应用程序平均窗口组成,以减少散斑,而频域实现将频谱分为子谱,并对其进行平均。频域多视的优势在于它可以在相同的空间分辨率下实现更好的 ENL(等效视数),但同时对计算的要求更高。
2、时域多视滤波
- 计算视数;视数跟距离向分辨率、方位向分辨率以及中心入射角有关。计算公式如下:
g = p r i a g=\frac{pr}{ia} g=iapr
g p a ∗ M → 1 \frac{g}{pa*M}\rightarrow1 pa∗Mg→1
式中, p r pr pr为距离向分辨率, p a pa pa为方位向分辨率, i a ia ia为中心入射角。
- 滑动平均滤波;根据视数,生成一个的窗口,进行滑动滤波,随着视数的增加,斑点噪声逐渐减少。
3、频域多视滤波
-
计算视数。
-
傅里叶变换;将图像进行傅里叶变化,得到一幅完整频域图像。
-
划分频谱;根据视数 m m m,将第2步中获取的频域图像分成 m m m份,得到 m m m份子谱频域图像;
-
逆傅里叶变化;将第3步获取的子谱频域图像进行逆傅里叶变换,得到得到 m m m份子谱时域图像;
-
合并子谱时域图像;将子谱时域图像进行合并,获取一张完整的多视处理后的SAR图像。
多视处理后,数据的方位向将变少,直观的就是数据行数变少,若为了保证数据行列号不变,可采用频域补零的方法。
4、参考文献
[1]刘冉. SAR图像相干斑抑制算法研究[D]. 合肥工业大学, 2022. DOI:10.27101/d.cnki.ghfgu.2022.000392.
二、代码实现
1、时域多视滤波
multilookProcessing.m
详细实现过程见:matlab实现的SAR图像多视滤波.rar
main.m
clc;
clear;
close all;%% ----------------------------读取SAR图像----------------------------
sarImg = imread("section.tif");
%% ----------------------------多视滤波-------------------------------
multilook_out = multilookProcessing(sarImg,2,4);
%% ----------------------------结果显示-------------------------------
figure;
subplot(121)
colormap('gray')
imagesc(sarImg);
title("原始图像");
hold on
subplot(122)
colormap('gray')
imagesc(multilook_out);
title('多视滤波后的强度图');
hold on;
三、结果展示
四、相关链接
- SAR的单视SLC和多视mlutilooking
- SAR数据的多视Multi-look,包括range looks和azimuth looks,如何设置多视比
- 基于matlab编程实现SAR图像多视处理