MATLAB 图像增强:直方图均衡化提高对比度
使用 MATLAB 实现直方图均衡化增强图像对比度
直方图均衡化是一种常见的图像增强技术,它通过将图像的强度直方图转换为均匀概率密度函数来提高图像对比度。这种方法通常会引入背景噪声。本文将介绍直方图均衡化的原理并使用 MATLAB 代码实现它。
直方图均衡化原理
直方图均衡化基于以下步骤:
- 读入图像: 使用
imread函数读取目标图像。 - 转换为灰度图: 使用
rgb2gray函数将彩色图像转换为灰度图像。 - 统计灰度直方图: 使用
imhist函数统计图像的灰度直方图,得到每个灰度值出现的次数。 - 计算累积分布函数 (CDF): 对灰度直方图进行累积求和,得到每个灰度值及以下灰度值出现的总次数。
- 映射灰度值: 根据累积分布函数将每个像素的灰度值映射到 0-255 之间,使灰度值分布更加均匀。
- 显示均衡后的图像: 使用
imshow函数显示均衡后的图像。
MATLAB 代码实现
% 读入图像
img = imread('lena.jpg');
% 将图像转换为灰度图
gray_img = rgb2gray(img);
% 统计图像的灰度直方图
histogram = imhist(gray_img);
% 计算灰度直方图的累积分布函数
cdf = cumsum(histogram) / numel(gray_img);
% 根据累积分布函数将每个像素的灰度值映射到0-255之间
equalized_img = uint8(255 * cdf(gray_img + 1));
% 显示均衡后的图像
figure;
subplot(1, 2, 1);
imshow(gray_img);
title('Original Image');
subplot(1, 2, 2);
imshow(equalized_img);
title('Equalized Image');
总结
本文介绍了使用 MATLAB 实现直方图均衡化的方法,并提供了示例代码。直方图均衡化可以有效地增强图像对比度,使图像细节更加清晰。但是,需要注意的是,直方图均衡化也会引入一定的噪声,需要根据实际情况进行选择。
原文地址: https://www.cveoy.top/t/topic/mXc2 著作权归作者所有。请勿转载和采集!