matlab使用直方图均衡化
时间: 2023-11-13 13:55:11 浏览: 101
好的,关于 Matlab 中的直方图均衡化,可以通过以下步骤实现:
1. 读取图像:使用 `imread` 函数读取需要处理的图像。
2. 转换为灰度图像:使用 `rgb2gray` 函数将彩色图像转换为灰度图像。
3. 计算直方图:使用 `imhist` 函数计算灰度图像的直方图。
4. 计算累积分布函数:使用 `cumsum` 函数计算直方图的累积分布函数。
5. 计算映射函数:根据累积分布函数计算映射函数。
6. 应用映射函数:使用 `intlut` 函数将映射函数应用到灰度图像上。
下面是一个示例代码:
```matlab
% 读取图像
img = imread('lena.png');
% 转换为灰度图像
gray_img = rgb2gray(img);
% 计算直方图
histogram = imhist(gray_img);
% 计算累积分布函数
cdf = cumsum(histogram) / numel(gray_img);
% 计算映射函数
map = uint8(255 * cdf);
% 应用映射函数
eq_img = intlut(gray_img, map);
% 显示结果
subplot(1, 2, 1);
imshow(gray_img);
title('原始图像');
subplot(1, 2, 2);
imshow(eq_img);
title('均衡化后的图像');
```
阅读全文