Prewitt算子MATLAB的实现代码
时间: 2024-03-07 07:50:31 浏览: 107
好使的角点检测程序
5星 · 资源好评率100%
以下是Prewitt算子在MATLAB中的实现代码:
```matlab
% 读入图像
I = imread('image.jpg');
% 转为灰度图像
Igray = rgb2gray(I);
% Prewitt算子卷积核
PrewittX = [-1 0 1; -1 0 1; -1 0 1];
PrewittY = [-1 -1 -1; 0 0 0; 1 1 1];
% 对图像进行卷积操作
Ix = conv2(double(Igray), PrewittX, 'same');
Iy = conv2(double(Igray), PrewittY, 'same');
% 计算梯度幅值
Igrad = sqrt(Ix.^2 + Iy.^2);
% 显示结果
imshow(Igrad, []);
```
在这段代码中,我们首先读入一张彩色图像,并将其转为灰度图像。然后定义Prewitt算子的卷积核,分别为PrewittX和PrewittY。接着使用MATLAB中的conv2函数对图像进行卷积操作,得到水平和垂直方向的梯度图像Ix和Iy。最后,计算梯度幅值并显示结果。
阅读全文