matlab 梯度图像锐化
时间: 2023-09-28 09:07:22 浏览: 223
基于MATLAB的图像处理算法-图像锐化
图像锐化是一种常见的图像处理技术,可以使图像更加清晰和鲜明。在 MATLAB 中,可以使用梯度算子对图像进行锐化。
以下是一些常用的梯度算子:
1. Sobel 算子:Sobel 算子是一种基于两个 3x3 的卷积核的算子,可以用于检测图像的边缘。
2. Prewitt 算子:Prewitt 算子是一种基于两个 3x3 的卷积核的算子,可以用于检测图像的边缘。
3. Roberts 算子:Roberts 算子是一种基于两个 2x2 的卷积核的算子,可以用于检测图像的边缘。
使用这些算子可以得到图像的梯度,然后将梯度与原始图像进行加权,得到锐化后的图像。以下是一个简单的 MATLAB 代码示例:
```matlab
% 读取图像
img = imread('lena.jpg');
% 将图像转换为灰度图像
gray_img = rgb2gray(img);
% 计算 Sobel 算子的梯度
sobel_x = [-1 0 1; -2 0 2; -1 0 1];
sobel_y = sobel_x';
grad_x = conv2(double(gray_img), sobel_x, 'same');
grad_y = conv2(double(gray_img), sobel_y, 'same');
grad = sqrt(grad_x.^2 + grad_y.^2);
% 图像锐化
sharp_img = gray_img + grad;
% 显示结果
figure;
subplot(1, 2, 1);
imshow(gray_img);
title('原始图像');
subplot(1, 2, 2);
imshow(sharp_img, []);
title('锐化后的图像');
```
在上面的代码中,我们首先将图像转换为灰度图像,然后使用 Sobel 算子计算图像的梯度。最后,将梯度与原始图像进行加权,得到锐化后的图像。
阅读全文