MATLAB中的色彩直方图均衡化是什么
在数字图像处理中,有一种被称为直方图均衡化的技术,用于通过调整图像中的对比度来提高图像的视觉质量。直方图均衡化通过重新分配整个图像的像素值,改善图像的质量,使图像的直方图能够均匀分布。
直方图实际上就是每个像素强度值出现的频率。有时,我们发现图像中的像素强度集中在特定范围内,导致图像的视觉质量较差。直方图均衡化通过调整像素强度级别,使其在整个可用范围内均匀分布,来解决此问题。
在本教程中,我们将学习关于色彩直方图均衡化以及如何在MATLAB中应用它到图像的知识。
MATLAB中的色彩直方图均衡化
在MATLAB中,我们可以通过重新分配不同颜色通道的像素强度来提高彩色图像的视觉质量。这个技术被称为色彩直方图均衡化。
色彩直方图均衡化改善了图像的对比度分布,使图像在视觉上更具吸引力。
色彩直方图均衡化的过程
在MATLAB中执行色彩直方图均衡化的逐步过程如下所述−
- 步骤(1) − 读取输入彩色图像。
-
步骤(2) − 将输入的RGB图像转换为LAB颜色图像。
-
步骤(3) − 对图像进行色彩直方图均衡化。
-
步骤(4) − 将LAB颜色图像转换回RGB图像。
-
步骤(5) − 显示增强的图像。
因此,MATLAB中的色彩直方图均衡化是一个直接的五步过程。
MATLAB示例
现在,让我们看一下执行MATLAB程序来进行图像的色彩直方图均衡化的实现。
以下MATLAB程序演示了在MATLAB编程中执行色彩直方图均衡化的实现。
% MATLAB code for performing color histogram equalization
% Read the input color image
% Read the input image
img = imread('https://www.tutorialspoint.com/assets/questions/media/14304-1687425236.jpg');
% Convert the RGB image to lab color image
lab_img = rgb2lab(img);
% Extract the luminance channel of the lab image
L = lab_img(:, :, 1);
% Perform color histogram equalization of L channel
che = histeq(L);
enhanced_lab_img = lab_img; % Copy the original lab image to the variable 'enhanced_lab_img'
enhanced_lab_img(:, :, 1) = che; % Assign the equalized L-channel to L-channel of the 'enhanced_lab_img'
% Convert the equalized image back to RGB image
enhanced_rgb_img = lab2rgb(enhanced_lab_img);
% Display the original and enhanced images
subplot(1, 2, 1), imshow(img), title('Original Image');
subplot(1, 2, 2), imshow(enhanced_rgb_img ), title('Enhanced Image');
输出
说明
在这个MATLAB程序中,首先我们用’imread’函数读取输入的彩色图像,并将其存储在变量’img’中。然后,我们使用’rgb2lab’函数将输入的RGB图像转换为Lab色彩图像,并将其存储在变量’lab_img’中。在Lab色彩图像中,亮度通道可以很容易地从颜色信息中分离出来,这有助于进行颜色直方图均衡化而不影响其颜色平衡。
然后,我们将色彩亮度通道分离并对其应用直方图均衡化,使用’histeq’函数。
接下来,我们将增强后的亮度通道分配给原始lab图像的亮度通道,并使用’lab2rgb’函数将增强后的lab图像转换回RGB图像。
最后,我们使用’disp’函数显示原始图像和增强后的图像。
结论
这就是关于对图像进行颜色直方图均衡化以改善其视觉质量的全部内容。这是一个非常简单和直接的过程,可以提高图像的对比度水平。在上述给出的MATLAB代码中,您可以将图像的地址替换为您自己的地址进行实验。