如何在 MATLAB 中使用直方图均衡化进行对比度增强?

matlabdata analysisprogramming

在数字图像处理中,通过改变颜色强度来改善数字图像的视觉质量和清晰度的过程称为"对比度增强"。

对比度增强是摄影、远程成像、医学成像等各个领域中一项重要的图像处理任务。我们可以使用各种工具来执行图像的对比度增强。在本教程中,我将讲解在 MATLAB 中使用直方图均衡化进行对比度增强的过程。

什么是对比度增强?

在数字图像处理中,对比度增强是一项基本的图像处理任务,旨在改善图像的视觉质量,使其更具视觉吸引力。

  • 数字图像的对比度增强是通过改变图像不同颜色通道的像素强度来实现的。它使图像更清晰、更细腻。

  • 对比度增强是医学成像、摄影、显微成像、计算机视觉等各个领域的重要过程之一。

  • 我们可以使用 MATLAB 对图像进行对比度增强。MATLAB 提供了各种有效的对比度增强技术,例如直方图均衡化、对比度拉伸、对比度受限自适应直方图均衡化、自适应对比度增强等。

在本教程中,我们将学习在 MATLAB 中使用直方图均衡化方法对图像进行对比度增强。

在 MATLAB 中使用直方图均衡化进行对比度增强

直方图均衡化是改变图像像素强度值以提高视觉质量的最常用方法之一。我们可以使用直方图均衡化来增强图像的对比度。

在 MATLAB 中,对比度增强是使用名为"histeq"的内置函数执行的。

以下是在 MATLAB 中使用直方图均衡化方法执行对比度增强的分步过程。

  • 步骤 (1) - 使用"imread"函数读取输入图像。

  • 步骤 (2) - 将输入图像转换为灰度图以应用直方图均衡化。为此,请使用"rgb2gray"函数。

  • 步骤 (3) − 使用"histeq"函数对灰度图像进行对比度增强。

  • 步骤 (4) − 使用"imshow"函数显示增强后的图像。

在 MATLAB 中,使用直方图均衡化进行对比度增强的过程分为四个步骤。

示例

现在让我们通过一个例子来了解在 MATLAB 中使用直方图均衡化进行对比度增强的代码实现。

% 使用直方图均衡化进行对比度增强的 MATLAB 代码
% 读取输入图像
img = imread('https://www.tutorialspoint.com/assets/questions/media/14304-1687425269.jpg');

% 将输入图像转换为灰度图像
gray_img = rgb2gray(img);

% 使用直方图均衡化进行对比度增强
enhanced_img = histeq(gray_img);

% 显示输入图像和增强图像
figure;
subplot(1, 2, 1);
imshow(gray_img);
title('Input Image');

subplot(1, 2, 2);
imshow(enhanced_img);
title('Enhanced Image');

输出

运行此代码时,将产生以下输出 -

说明

在此示例中,我们首先使用"imread"函数读取输入图像。然后,我们使用"rgb2gray"函数将输入图像从 RGB 颜色格式转换为灰度格式。接下来,我们使用"histeq"函数对图像进行对比度增强。最后,我们使用"imshow"函数显示输入图像的灰度版本和增强后的图像。

结论

总而言之,对比度增强是一种通过操纵图像中像素强度值来改善图像视觉质量的方法。我们可以使用 MATLAB 对图像进行对比度增强。 MATLAB 提供了多种方法来完成此任务,最常用的方法是直方图均衡化。

在本教程中,我逐步讲解了如何使用 MATLAB 中的直方图均衡化来增强图像的对比度。


相关文章