matlab 实现选择一副直方图不均匀的图像进行直方图均衡化处理,显示结果图像和对应直方图。
时间: 2024-11-09 08:25:45 浏览: 17
在MATLAB中,你可以使用以下步骤对直方图不均匀的图像进行直方图均衡化处理,并显示处理后的图像及其对应的直方图:
1. **读取图像**:
首先,使用`imread`函数从文件或数据源读取图像,例如 `img = imread('uneven_histogram_image.jpg');`
2. **查看原图像直方图**:
使用`imhist`函数获取图像的直方图信息,以便了解其分布情况,`figure; histcounts = imhist(img, 256);`
3. **直方图均衡化**:
MATLAB提供内置函数`imhisteq`用于直方图均衡化。调用`equalized_img = imhisteq(img);` 进行处理,这里`256`表示灰度级别的数量。
4. **显示处理后的图像**:
使用`imshow`函数展示均衡化的图像:
```matlab
subplot(1, 2, 1), imshow(img, 'InitialMagnification', 'fit'), title('Original Image');
subplot(1, 2, 2), imshow(equalized_img, 'InitialMagnification', 'fit'), title('Equalized Image');
```
5. **绘制直方图**:
分别计算原图和均衡化后的图像的直方图,并使用`plot`函数展示:
```matlab
subplot(1, 2, 3), plot(histcounts), title('Original Image Histogram');
subplot(1, 2, 4), plot(imhist(equalized_img, 256)), title('Equalized Image Histogram');
```
6. **保存图像和直方图**:
如果需要,可以使用`saveas`函数保存图片,而`print`函数用于保存直方图图像。
完成上述步骤后,你将看到一个窗口中包含了原图像、直方图均衡化后的图像,以及各自对应的直方图。
阅读全文