问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

数字图像处理直方图均衡化Matlab程序

创作时间:
作者:
@小白创作中心

数字图像处理直方图均衡化Matlab程序

引用
CSDN
1.
https://blog.csdn.net/2501_90824910/article/details/146350344

直方图均衡化是一种增强图像对比度的技术,特别适用于改善低对比度图像的质量。它通过重新分布图像的亮度值来增加图像中不同灰度级之间的差异。本文将介绍如何使用Matlab实现直方图均衡化,并提供完整示例代码。

直方图均衡化示例代码

% 读取输入图像(假设是灰度图像)
inputImage = imread('path_to_your_image.jpg');

% 如果图像是RGB图像,先转换为灰度图像
if size(inputImage, 3) == 3
    inputImage = rgb2gray(inputImage);
end

% 显示原始图像及其直方图
figure;
subplot(2, 2, 1);
imshow(inputImage);
title('Original Image');
subplot(2, 2, 2);
imhist(inputImage);
title('Histogram of Original Image');

% 应用直方图均衡化
outputImage = histeq(inputImage);

% 显示处理后的图像及其直方图
subplot(2, 2, 3);
imshow(outputImage);
title('Enhanced Image after Histogram Equalization');
subplot(2, 2, 4);
imhist(outputImage);
title('Histogram of Enhanced Image');

解释

  1. 读取和预处理图像
  • 使用 imread 函数读取图像。
  • 检查图像是否为RGB图像,如果是,则使用 rgb2gray 将其转换为灰度图像。这是因为直方图均衡化通常应用于单通道灰度图像。
  1. 显示原始图像和直方图
  • 使用 imshow 显示原始图像。
  • 使用 imhist 绘制并显示原始图像的直方图。
  1. 应用直方图均衡化
  • 使用 histeq 函数对图像进行直方图均衡化处理。该函数会自动调整图像的灰度值分布,使得图像的对比度得到增强。
  1. 显示处理后的图像和直方图
  • 使用 imshow 显示经过直方图均衡化处理后的图像。
  • 使用 imhist 绘制并显示处理后图像的直方图。

进一步说明

  • histeq 函数:这是Matlab提供的用于直方图均衡化的内置函数。你可以指定输出图像的灰度级数(默认为64),也可以提供一个参考图像以匹配其直方图。

  • 自定义直方图均衡化:如果你需要更精细的控制或实现特定类型的直方图均衡化(如限制对比度自适应直方图均衡化CLAHE),可以使用 adapthisteq 函数或其他高级技术。

示例图像路径

请将 'path_to_your_image.jpg' 替换为你想要处理的实际图像文件路径。例如:

inputImage = imread('C:\Users\YourUsername\Pictures\example.jpg');

这样,你就可以运行上述代码来查看图像直方图均衡化的效果了。这个过程不仅能够提高图像的整体对比度,还能使细节更加清晰。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号