%% 提取二维散射中心并识别物体轮廓
function scatters_2d = extract_2d_scatters(sar_image)
% 提取二维散射中心并识别物体轮廓
theta = 0:1:180; % 更细的 Radon 变换角度范围
sigma = 1; % 高斯滤波的标准差,用于去噪
detection_threshold = 10e-4; % 检测阈值
% Step 1: 预处理图像 - 去噪处理与对比度增强
image_smoothed = imgaussfilt(sar_image, sigma); % 使用高斯滤波去噪
image_smoothed = imadjust(image_smoothed); % 增强对比度
% Step 2: Radon 变换
[R, xp] = radon(image_smoothed, theta);
% Step 3: 二值化处理
R_bin = R > detection_threshold * max(R(:)); % 手动设置阈值
R_label = bwlabel(R_bin); % 连通分量标记
% Step 4: 提取连通分量的质心
stats = regionprops(R_label, 'Centroid', 'Area', 'Orientation');
centroids = cat(1, stats.Centroid);
% Step 5: 反向映射回原图像空间
scatters_2d = [];
if ~isempty(centroids)
img_center = size(sar_image) / 2; % 图像中心点
for i = 1:size(centroids, 1)
angle
05-04