基于Canny算子的图像边缘检测与可视化 MATLAB 实现
项目介绍
本项目完整实现了经典Canny边缘检测算法,提供从高斯滤波到边缘连接的五个核心处理步骤。该实现不仅能够生成高质量的二值边缘图像,还支持各阶段中间结果的可视化展示,便于算法学习和效果分析。
功能特性
- 完整算法流程:实现高斯滤波、梯度计算、非极大值抑制、双阈值检测和边缘连接五大步骤
- 灵活参数配置:支持自定义高斯滤波标准差、高低阈值比例等关键参数
- 多格式输入支持:兼容灰度图像和彩色图像输入
- 详细输出选项:可输出梯度幅值图、梯度方向图等中间结果
- 可视化功能:可生成处理过程的对比图表,直观展示各阶段效果
使用方法
% 基本用法:直接读取图像文件进行边缘检测
edge_image = main('image.jpg');
% 高级用法:自定义参数并启用可视化
[edge_result, gradient_magnitude, gradient_direction] = main(...
'image.png', ...
'sigma', 1.5, ...
'high_threshold_ratio', 0.15, ...
'low_threshold_ratio', 0.08, ...
'visualize', true);
输入参数说明:
image_path: 输入图像路径(必选)sigma: 高斯滤波标准差,控制平滑程度(默认1.0)high_threshold_ratio: 高阈值比例(默认0.2)low_threshold_ratio: 低阈值比例(默认0.1) visualize: 是否显示处理过程(默认false)
输出结果:
- 主输出:二值边缘图像(逻辑矩阵)
- 可选输出:梯度幅值图、梯度方向图、非极大值抑制结果
系统要求
- MATLAB R2018b 或更高版本
- Image Processing Toolbox(图像处理工具箱)
文件说明
该项目的核心执行文件整合了完整的Canny边缘检测流水线,承担图像预处理、算法执行和结果展示等功能。具体包含图像读取与格式转换、可配置的高斯模糊处理、基于Sobel算子的梯度计算、边缘细化所需的非极大值抑制、双阈值判别机制以及最终的边缘连接操作。同时,该文件还负责根据用户设置生成处理过程的可视化对比图,并管理所有输出数据的返回。