图像处理中使用 MATLAB 的自适应直方图均衡化


直方图均衡化是一种用于图像处理以改善直方图动态范围的方法。这种数学技术广泛用于增强数字图像处理中图像的对比度。这种技术提供了图像中像素值更广泛和均衡的分布。直方图均衡化技术基本上是通过增强图像中亮度值的范围来工作的,这使得它在视觉上更具吸引力。

自适应直方图均衡化 (AHE) 简介

在数字图像处理中,自适应直方图均衡化 (AHE) 是一种用于增强图像对比度的方法。自适应直方图均衡化技术不同于传统的直方图均衡化,因为它首先将图像划分为较小的子区域,然后通过对每个子区域分别应用直方图均衡化技术来增强图像的对比度。

因此,自适应直方图均衡化技术可以提供图像的局部对比度增强。因此,在照明条件变化的图像情况下,这成为一种更有效的方法。

自适应直方图均衡化的优势

自适应直方图均衡化在数字图像处理中提供了各种优势。其中一些列在此处

  • 自适应直方图均衡化通过改善更广泛范围内的亮度级别来增强图像的对比度。

  • 自适应直方图均衡化可以提供图像的局部对比度增强,这在亮度级别变化的图像中非常有用。

  • 自适应直方图均衡化可以提高在低光照条件、亮度级别变化等环境中拍摄的图像的整体可见度。

用于自适应直方图均衡化的 MATLAB 函数

以下 MATLAB 函数用于编写 MATLAB 代码,以使用自适应直方图均衡化增强图像的对比度

  • imread():这是一个用于读取图像的内置 MATLAB 函数。

  • size():这是一个用于确定图像大小的 MATLAB 函数。

  • rgb2gray():这也是一个用于将 RGB 图像转换为灰度图像的内置 MATLAB 函数。

  • adapthisteq():这是 MATLAB 中用于对图像执行自适应直方图均衡化的内置函数。

  • imshow():这是一个用于显示图像的 MATLAB 函数。

MATLAB 程序示例

以下是 MATLAB 程序示例,用于说明如何在图像处理中执行自适应直方图均衡化
%MATLAB Code to perform adaptive histogram equalization in image processing
% Call imread() function to read the image that has to be enhanced
img = imread('https://tutorialspoint.com/assets/questions/media/14304-1687425236.jpg');
% Call size() and rgb2gray() functions to get size and convert the image to grayscale if necessary
if size(img, 3) == 3
   img = rgb2gray(img);
end
% Call adapthisteq() function to perform Adaptive Histogram Equalization
enhanced_img = adapthisteq(img);
% Call imshow() function to display the original and enhanced images
figure;
subplot(1, 2, 1); imshow(img); title('Original Image');
subplot(1, 2, 2); imshow(enhanced_img); title('Enhanced Image');

输出

结论

在此 MATLAB 程序中,我们首先调用“imread()”函数来读取输入图像。然后,我们调用“size() 和 rgb2gray()”函数以获取大小并将彩色图像转换为灰度图像。之后,我们调用“adapthisteq()”函数对图像执行自适应直方图均衡化。此函数会自动将整个图像划分为较小的区域,然后分别对每个区域应用直方图均衡化。最后,我们调用“imshow()”函数来显示原始图像和增强后的图像。

更新于: 2023-07-18

258 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告