canny边缘检测算法matlab代码
时间: 2023-11-10 17:59:43 浏览: 38
以下是使用MATLAB实现的Canny边缘检测算法代码:
% 读取图像
img = imread('lena.jpg');
% 将图像转换为灰度图像
grayImg = rgb2gray(img);
% 高斯滤波,sigma为高斯核的标准差
blurredImg = imgaussfilt(grayImg, 1.5);
% 计算图像梯度,sobel算子
[Gx, Gy] = imgradientxy(blurredImg);
% 计算梯度幅值和方向
[gradMag, gradDir] = imgradient(Gx, Gy);
% 非最大值抑制,使边缘更细
gradMagMax = imregionalmax(gradMag);
gradMagNMS = gradMag .* gradMagMax;
% 双阈值处理,lowThreshold和highThreshold为阈值
lowThreshold = 0.1 * max(gradMagNMS(:));
highThreshold = 0.2 * max(gradMagNMS(:));
edgeMap = zeros(size(gradMagNMS));
edgeMap(gradMagNMS > highThreshold) = 1;
% 连通区域处理,使边缘更连续
edgeMap = bwselect(edgeMap, gradDir, 8);
% 消除较弱的边缘
edgeMap = bwmorph(edgeMap, 'thin', Inf);
edgeMap(gradMagNMS < lowThreshold) = 0;
% 显示结果
imshowpair(grayImg, edgeMap, 'montage');
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)