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://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中,您可以将图像的地址替换为您自己的地址进行实验。