matlab编程实现图像的空域平滑和锐化
时间: 2024-05-07 21:15:17 浏览: 69
利用MATLAB实现图像的空域滤波。
空域平滑:
```matlab
%读入图像
img = imread('lena.jpg');
%显示原图像
subplot(2,2,1);
imshow(img);
title('原图像');
%定义平滑模板
h = fspecial('average',[5 5]);
%进行平滑操作
img_smooth = imfilter(img,h);
%显示平滑后图像
subplot(2,2,2);
imshow(img_smooth);
title('平滑后图像');
```
空域锐化:
```matlab
%读入图像
img = imread('lena.jpg');
%显示原图像
subplot(2,2,1);
imshow(img);
title('原图像');
%定义锐化模板
h = fspecial('laplacian',0);
%进行锐化操作
img_sharpen = img - imfilter(img,h);
%显示锐化后图像
subplot(2,2,2);
imshow(img_sharpen);
title('锐化后图像');
```
说明:
1. `fspecial()`函数用于生成各种滤波模板,其中`'average'`表示平均模板,`'laplacian'`表示拉普拉斯模板;
2. `imfilter()`函数用于进行滤波操作,第一个参数为要进行滤波的图像,第二个参数为滤波模板;
3. 在进行锐化操作时,可以先将原图像与模板进行卷积,再将卷积结果从原图像中减去,得到锐化后的图像。
阅读全文