📅  最后修改于: 2023-12-03 15:24:17.119000             🧑  作者: Mango
直方图均衡(Histogram Equalization)是一种图像处理方法,用于增强图像的对比度。在 MATLAB 中,我们可以利用内置函数 histeq
实现直方图均衡操作。
下面是一个简单的示例程序,展示了如何使用 histeq
对一张灰度图像进行直方图均衡操作。
% 读入图像
I = imread('lena_gray.jpg');
% 对图像进行直方图均衡操作
I_eq = histeq(I);
% 显示原图和处理后的图像
figure;
subplot(1, 2, 1);
imshow(I);
title('原图');
subplot(1, 2, 2);
imshow(I_eq);
title('直方图均衡处理后的图像');
上述代码中,首先使用 imread
函数读入一张灰度图像。然后使用 histeq
函数对图像进行直方图均衡操作,生成一个新的图像。最后使用 subplot
和 imshow
函数将原图和处理后的图像显示在同一张图像上。
需要注意的是,histeq
函数的输入图像必须为灰度图像。如果输入图像为彩色图像,则需要将其转换为灰度图像再进行直方图均衡操作。
% 读入彩色图像
I_rgb = imread('lena_color.jpg');
% 将彩色图像转换为灰度图像
I_gray = rgb2gray(I_rgb);
% 对灰度图像进行直方图均衡操作
I_eq = histeq(I_gray);
% 显示原图和处理后的图像
figure;
subplot(1, 2, 1);
imshow(I_gray);
title('灰度图像');
subplot(1, 2, 2);
imshow(I_eq);
title('直方图均衡处理后的图像');
上述代码中,首先使用 imread
函数读入一张彩色图像。然后使用 rgb2gray
函数将彩色图像转换为灰度图像。最后使用 histeq
函数对灰度图像进行直方图均衡操作,并将原图和处理后的图像显示在同一张图像上。
总的来说,使用 histeq
函数对图像进行直方图均衡操作非常简单,只需输入需要处理的图像即可。但需要注意的是,直方图均衡并不总是适用于所有类型的图像,有时候可能会导致图像过度增强,出现过度对比度的情况。因此,在使用直方图均衡处理图像时,需要根据实际情况进行调整和优化。