一、算法原理与流程
SUSAN(Smallest Univalue Segment Assimilating Nucleus)通过圆形模板统计邻域相似像素数量,其核心步骤包括:
- 模板扫描:7×7圆形模板(37像素)遍历图像
- 相似性判断:灰度差小于阈值t的像素计入USAN值
- 边缘响应:R=g−USAN(g=0.75×max(USAN))
- 非极大值抑制:细化边缘
二、MATLAB实现代码
1. 参数配置与预处理
matlab
function edge_susan_demo()
% 读取图像
img = imread('lena.jpg');
if size(img,3)==3
img = rgb2gray(img);
end
img = im2double(img);
% 参数设置
t = 45; % 灰度差阈值
g = 28; % 几何阈值(37×0.75)
radius = 3; % 模板半径
img_size = size(img);
% 扩展图像边界(避免边缘处理)
pad = radius;
img_pad = padarray(img, [pad,pad], 'replicate');
2. SUSAN核心检测
matlab
% 初始化响应矩阵
[h,w] = size(img_pad);
R = zeros(h,w);
% 定义圆形模板掩膜
[X,Y] = meshgrid(-radius:radius, -radius:radius);
mask = (X.^2 + Y.^2) <= radius^2;
mask = double(mask);
% 遍历图像
for i = (1+radius):(h-radius)
for j = (1+radius):(w-radius)
% 提取模板区域
patch = img_pad(i-radius:i+radius, j-radius:j+radius);
% 计算USAN值
diff = abs(patch - img_pad(i,j));
usan = sum(sum(mask .* (diff < t)));
% 计算边缘响应
if usan < g
R(i,j) = g - usan;
end
end
end
% 裁剪回原尺寸
R = R(radius+1:end-radius, radius+1:end-radius);
3. 非极大值抑制(NMS)
matlab
% 非极大值抑制
[rows,cols] = size(R);
edge = zeros(rows,cols);
% 3x3邻域抑制
for i = 2:rows-1
for j = 2:cols-1
if R(i,j) > max([R(i-1,j-1), R(i-1,j), R(i-1,j+1), ...
R(i,j-1), R(i,j+1), ...
R(i+1,j-1), R(i+1,j), R(i+1,j+1)])
edge(i,j) = R(i,j);
end
end
end
4. 结果可视化
matlab
% 显示结果
figure;
subplot(131), imshow(img), title('Original');
subplot(132), imshow(R,[]), title('SUSAN Response');
subplot(133), imshow(edge,[]), title('Edge Detection');
% 保存结果
imwrite(edge, 'susan_edge.jpg');
end
三、关键参数优化
| 参数 | 影响范围 | 推荐值 | 调整策略 |
|---|---|---|---|
| t | 噪声抑制能力 | 30-60 | 低对比度图像减小,高噪声增大 |
| g | 边缘粗细 | 25-35 | 与t联动调整(g=0.7t) |
| 模板尺寸 | 检测精度与计算量 | 3×3~5×5 | 复杂边缘用大模板 |
| NMS窗口 | 边缘细化效果 | 3×3 | 曲线边缘改用十字形窗口 |
四、结果对比与分析
| 指标 | SUSAN | Canny | Sobel |
|---|---|---|---|
| 抗噪性 | ★★★★☆ | ★★★☆☆ | ★★☆☆☆ |
| 边缘定位精度 | ★★★☆☆ | ★★★★☆ | ★★☆☆☆ |
| 计算效率 | ★★★★☆ | ★★☆☆☆ | ★★★★☆ |
| 参数敏感性 | 低 | 高 | 中 |
参考代码 基于SUSAN特征检测算子的边缘提取 www.youwenfan.com/contentcsp/97248.html
五、场景示例
- 医学图像分析 检测X光片中的骨骼轮廓,设置t=30抑制噪声,g=25保留细小结构。
- 工业检测 识别金属零件表面裂纹,结合自适应阈值处理反光区域。
- 遥感图像处理 提取卫星影像中的道路边缘,多尺度融合增强断裂路段。