matlab边缘检测

本文介绍使用MATLAB图像处理工具箱中的edge函数进行边缘检测的方法,包括Sobel、Prewitt、Roberts、Laplacian of Gaussian (LoG) 和 Canny等不同算子的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

f=imread('0.jpg');                           % 读入图像
f=rgb2gray(f);                                     % 将彩色图像转换为灰度图像
f=im2double(f);                                    % 转换为双精度,便于后面的计算
PE=edge(f,'sobel','horizontal');%sobel水平
figure, imshow(PE),title('sobel Image'),
figure, imshow(f),title('Original Image'),               
PF=edge(f,'prewitt');                               % 边缘探测,算子为prewitt
figure,imshow(PF),title('Prewitt Filter');               
RF=edge(f,'roberts');                              % 边缘探测,算子为roberts
figure,imshow(RF),title('Roberts Filter');              
LF=edge(f,'log');                                  % 边缘探测,算子为log
figure,imshow(LF),title('Laplacian of Gaussian (LoG) Filter'); 
CF=edge(f,'canny');                                 % 边缘探测,算子为canny

figure,imshow(CF),title('Canny Filter');      


MATLAB的图像处理工具箱中提供的edge函数可以实现检测边缘的功能,其语法格式如下:
BW = edge(I,'sobel')
BW = edge(I,'sobel',direction)
BW = edge(I,'roberts')
BW = edge(I,'log')
这里BW = edge(I,'sobel')采用Sobel算子进行边缘检测。BW = edge(I,'sobel',direction)可以指定算子方向,即:
direction=’horizontal’,为水平方向;
direction=’vertical’,为垂直方向;
direction=’both’,为水平和垂直两个方向。
BW = edge(I,'roberts')和BW = edge(I,'log')分别为用Roberts算子和拉普拉斯高斯算子进行边缘检测。  


        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值