matlab编程实现图像的空域平滑和锐化
时间: 2024-05-14 16:14:01 浏览: 2
空域平滑:
```matlab
%读取图像
img = imread('lena.jpg');
%将图像转为灰度图像
img = rgb2gray(img);
%定义一个3*3的平均模板
avg_filter = ones(3)/9;
%将模板与图像进行卷积
out = conv2(double(img), avg_filter, 'same');
%显示结果
subplot(1,2,1), imshow(img), title('原图像');
subplot(1,2,2), imshow(uint8(out)), title('平滑后的图像');
```
空域锐化:
```matlab
%读取图像
img = imread('lena.jpg');
%将图像转为灰度图像
img = rgb2gray(img);
%定义一个3*3的锐化模板
sharpen_filter = [0 -1 0; -1 5 -1; 0 -1 0];
%将模板与图像进行卷积
out = conv2(double(img), sharpen_filter, 'same');
%显示结果
subplot(1,2,1), imshow(img), title('原图像');
subplot(1,2,2), imshow(uint8(out)), title('锐化后的图像');
```
注意:在锐化图像时,需要将卷积结果转为整型,然后再转为无符号整型显示。
相关问题
matlab图像空域高斯平滑滤波和空域锐化滤波代码是啥
图像空域高斯平滑滤波的Matlab代码如下:
```matlab
% 读取图像
img = imread('image.jpg');
% 滤波器大小
kernel_size = 5;
% 高斯滤波器标准差
sigma = 1.5;
% 生成高斯滤波器
kernel = fspecial('gaussian', kernel_size, sigma);
% 进行滤波
img_smoothed = imfilter(img, kernel);
% 显示处理前后的图像
subplot(1, 2, 1);
imshow(img);
title('Original Image');
subplot(1, 2, 2);
imshow(img_smoothed);
title('Smoothed Image');
```
图像空域锐化滤波的Matlab代码如下:
```matlab
% 读取图像
img = imread('image.jpg');
% 滤波器大小
kernel_size = 3;
% 高斯滤波器标准差
sigma = 1.5;
% 生成高斯滤波器
kernel = fspecial('gaussian', kernel_size, sigma);
% 进行平滑滤波
img_smoothed = imfilter(img, kernel);
% 进行锐化滤波
img_sharpened = img - img_smoothed;
% 显示处理前后的图像
subplot(1, 2, 1);
imshow(img);
title('Original Image');
subplot(1, 2, 2);
imshow(img_sharpened);
title('Sharpened Image');
```
matlab图像空域锐化增强
图像空域锐化增强是一种常见的图像处理技术,可以提高图像的清晰度和对比度。在Matlab中,实现图像空域锐化增强可以通过以下步骤:
1. 读取图像
2. 对图像进行滤波平滑处理,去除噪声
3. 计算图像的梯度,即图像的边缘信息
4. 对梯度图像进行增强处理,突出边缘信息
5. 将增强后的梯度图像和原始图像进行合并,得到锐化增强后的图像
在Matlab中,可以使用一些函数来实现这些步骤,比如imread、imfilter、fspecial、imgradient、imadjust等函数。需要注意的是,在实现锐化增强时需要选择合适的滤波器和参数,以达到较好的效果。