边缘检测matlab代码
时间: 2023-07-27 07:07:35 浏览: 56
以下是一个基于Canny算法的边缘检测的MATLAB代码示例:
```matlab
% 读取图像
img = imread('example.jpg');
% 灰度化
gray_img = rgb2gray(img);
% 高斯滤波
gaussian_img = imgaussfilt(gray_img, 1);
% Canny边缘检测
edge_img = edge(gaussian_img, 'Canny', [0.05, 0.2], 1);
% 显示结果
imshow(edge_img);
```
其中,`imread`函数用于读取图像,`rgb2gray`函数用于把RGB图像转换为灰度图像,`imgaussfilt`函数用于进行高斯滤波,`edge`函数用于进行Canny边缘检测,最后用`imshow`函数显示结果。
相关问题
sobel边缘检测matlab代码
以下是使用Sobel算子进行边缘检测的MATLAB代码:
```
% 读取图像
img = imread('image.jpg');
% 将图像转换为灰度图像
gray_img = rgb2gray(img);
% 按Sobel算子进行边缘检测
sobel_img = edge(gray_img, 'sobel');
% 显示原始图像和边缘检测结果
subplot(1,2,1), imshow(gray_img), title('原始图像');
subplot(1,2,2), imshow(sobel_img), title('Sobel算子边缘检测结果');
```
其中,`imread`函数用于读取图像,`rgb2gray`函数用于将图像转换为灰度图像,`edge`函数用于进行边缘检测,`subplot`和`imshow`函数用于显示原始图像和边缘检测结果。
Roberts边缘检测matlab代码
以下是使用Matlab实现的Roberts边缘检测的示例代码:
```matlab
% 读取图像
img = imread('lena.png');
% 将图像转换为灰度图
gray_img = rgb2gray(img);
% 定义Roberts算子
roberts = [1 0; 0 -1];
% 对图像进行Roberts边缘检测
edge_img = imfilter(double(gray_img), roberts);
% 显示原始图像和边缘检测结果
figure;
subplot(1,2,1);
imshow(gray_img);
title('原始图像');
subplot(1,2,2);
imshow(edge_img, []);
title('Roberts边缘检测结果');
```
在这个示例中,首先使用`imread`函数读取输入图像。然后,使用`rgb2gray`函数将图像转换为灰度图像。接下来,我们定义了Roberts算子,它是一个2x2的矩阵。最后,我们使用`imfilter`函数将Roberts算子应用于图像,得到边缘检测结果。最后,我们使用`imshow`函数显示原始图像和边缘检测结果。