用matlab程序对名称为lena.png的灰度图像进行图像增强,包括直方图均衡、平滑、锐化、边缘检测,程序包括图像的读取,结果的展示通过弹窗弹出,并将结果存储到本地路径
时间: 2024-04-01 13:33:17 浏览: 64
好的,我可以为您提供一些这方面的代码示例。
首先,需要读取lena.png图像:
```matlab
img = imread('lena.png');
```
接下来,进行直方图均衡:
```matlab
img_eq = histeq(img);
```
进行平滑:
```matlab
img_smooth = imgaussfilt(img, 2); % 2为高斯滤波器的标准差,可以根据需要进行调整
```
进行锐化:
```matlab
img_sharp = imsharpen(img, 'Amount', 1.5, 'Radius', 1, 'Threshold', 0);
% Amount为锐化程度,Radius为锐化半径,Threshold为控制锐化的阈值
```
进行边缘检测:
```matlab
img_edge = edge(img, 'Canny', 0.4); % 0.4为Canny算子的阈值,可以根据需要进行调整
```
最后,将结果展示并存储到本地路径:
```matlab
imshow(img_eq); % 显示直方图均衡的结果
imwrite(img_eq, 'lena_eq.png'); % 存储直方图均衡的结果到本地路径
imshow(img_smooth); % 显示平滑的结果
imwrite(img_smooth, 'lena_smooth.png'); % 存储平滑的结果到本地路径
imshow(img_sharp); % 显示锐化的结果
imwrite(img_sharp, 'lena_sharp.png'); % 存储锐化的结果到本地路径
imshow(img_edge); % 显示边缘检测的结果
imwrite(img_edge, 'lena_edge.png'); % 存储边缘检测的结果到本地路径
```
以上就是一个简单的图像增强的程序示例,您可以根据需要进行修改和调整。同时,也可以将以上代码封装成一个函数,方便调用。
阅读全文