matlab图像边缘提取
时间: 2023-11-02 17:01:22 浏览: 84
Matlab 中,可以使用边缘检测算法来实现图像边缘的提取。常见的边缘检测算法有 Sobel、Prewitt、Canny 等。
下面以 Sobel 算法为例,介绍如何在 Matlab 中进行图像边缘检测:
1. 读入图像并转为灰度图像
```matlab
I = imread('image.jpg');
I_gray = rgb2gray(I);
```
2. 对灰度图像进行 Sobel 滤波
```matlab
Ix = edge(I_gray,'Sobel','horizontal');
Iy = edge(I_gray,'Sobel','vertical');
```
其中,'Sobel' 表示使用 Sobel 算子,'horizontal' 和 'vertical' 分别表示水平和垂直方向。
3. 将水平和垂直方向的边缘进行合并
```matlab
I_edge = Ix | Iy;
```
4. 显示图像
```matlab
imshow(I_edge);
```
完整代码如下:
```matlab
I = imread('image.jpg');
I_gray = rgb2gray(I);
Ix = edge(I_gray,'Sobel','horizontal');
Iy = edge(I_gray,'Sobel','vertical');
I_edge = Ix | Iy;
imshow(I_edge);
```
运行代码后,即可看到图像的边缘提取结果。
阅读全文