课程学习——canny边缘算子

本文介绍了Canny边缘检测算子的基本特征,包括其对噪声的抑制和边缘定位的精确性。Canny算法包括高斯滤波、梯度计算、非极大值抑制和双阈值检测四个步骤。最后,文章提供了MATLAB实现Canny边缘检测的简要说明。
摘要由CSDN通过智能技术生成

Canny边缘检测基本特征如下:
(1) 必须满足两个条件:①能有效地抑制噪声;②必须尽量精确确定边缘的位置。
(2) 根据对信噪比与定位乘积进行测度,得到最优化逼近算子。这就是Canny边缘检测算子。
(3) 类似与Marr(LoG)边缘检测方法,也属于先平滑后求导数的方法。

Canny边缘检测算法步骤:
步骤1:用高斯滤波器平滑处理原图像;
步骤2:用一阶偏导的有限差分进行计算梯度的幅值和方向;
步骤3:对梯度幅值进行非极大值抑制;
步骤4:用双阈值算法检测和连接边缘。

matlab:C语言逻辑实现canny边缘算子。
代码:

clc;
clear all;
%导入原图
data=imread('C:\Users\Barca\Desktop\234.jpg');
%显示原图
figure(1);
imshow(data);
[m,n,r]=size(data);
%图像灰度化
if r>1
    data1=rgb2gray(data);
else
    data1=data;
end
%显示灰度化图
figure(2);
imshow(data1);
%数据转为double格式
data1=double(data1);

%step1.高斯滤波
%生成一个3*3的高斯模板,标准差为0.8
template=fspecial('gaussian',3,0.8);
%模板滤波
img_filt=imfilter(data1,template);

%step2.计算图像的梯度(幅度和方向)
%x方向上的梯度模板
ax=[-1,-1,-1;0,0,0;1,1,1];
%y方向上的梯度模板
ay=[-1,0,1;-1,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值