Canny边缘检测算子的实现

Canny边缘检测算子的实现

这学期学了数字图像分析这门课,感觉很多东西听得半懂不懂,觉得还是一个一个实践下比较好,希望自己能坚持下来。canny边缘检测算子被认为是最好的边缘检测算子,在此给出我的matlab实现方法,以及结果的大概分析。本文主要参考了两位大神的博文,链接如下:
https://blog.csdn.net/q664111/article/details/51116378
https://blog.csdn.net/kezunhai/article/details/11620357

canny算法的matlab实现

function [] = cannyFun(imagepath)
%功能: 获得图像的边缘
%步骤:
% 1. 用高斯滤波器平滑图像;(图像去噪) 
% 2. 用一阶偏导有限差分计算梯度幅值和方向;(特征增强) 
% 3. 阈值化处理,再对梯度幅值进行非极大值抑制 ;(边缘检测) 
% 4. 用双阈值算法检测和连接边缘。

%1. 高斯平滑
%imagepath = 'Fig0233(a).tif';
data = imread(imagepath);
data = im2double(data);
w = fspecial('gaussian', [5, 5]);
dataFiltered = imfilter(data, w, 'replicate');

%2. 用一阶偏导有限差分计算梯度幅值和方向
%在这里用sobel算子计算水平和竖直的梯度,以及梯度幅值,方向暂时不算。
sobelx = [-1, 0, 1; -2, 0, 2; -1, 0, 1];
sobely = [-1, -2, -1; 0, 0<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值