matlab直方图均衡化的介绍
时间: 2023-07-13 21:06:59 浏览: 87
matlab直方图均衡化
直方图均衡化是一种常用的图像增强方法,它可以使图像的对比度增加,从而使得图像更加清晰、明亮。在 MATLAB 中,可以通过 histeq 函数实现直方图均衡化。
具体步骤如下:
1. 读取图像
使用 imread 函数读取需要处理的图像,将其转换为灰度图像。
2. 计算原始图像的直方图
使用 imhist 函数计算原始图像的直方图,得到每个像素值的出现次数。
3. 计算累计分布函数
将原始图像的直方图进行归一化,得到每个像素值的出现概率。然后计算出累计分布函数(CDF)。
4. 计算映射函数
将 CDF 进行线性变换,得到像素值的映射函数。
5. 应用映射函数
将像素值通过映射函数进行转换,从而得到直方图均衡化后的图像。
6. 显示结果
使用 imshow 函数显示处理后的图像。
代码示例:
```matlab
% 读取图像
img = imread('lena.jpg');
% 转换为灰度图像
img_gray = rgb2gray(img);
% 计算原始图像的直方图
counts = imhist(img_gray);
% 计算累计分布函数
cdf = cumsum(counts) / numel(img_gray);
% 计算映射函数
map = uint8(255 * cdf);
% 应用映射函数
img_eq = map(img_gray + 1);
% 显示结果
subplot(1, 2, 1); imshow(img_gray); title('原始图像');
subplot(1, 2, 2); imshow(img_eq); title('均衡化后的图像');
```
运行上述代码,即可得到直方图均衡化后的图像。
阅读全文