步骤:

  1. 读入图像
  2. 将图像转换为灰度图
  3. 统计图像的灰度直方图
  4. 计算灰度直方图的累积分布函数
  5. 根据累积分布函数将每个像素的灰度值映射到0-255之间
  6. 显示均衡后的图像

以下是实现代码:

% 读入图像
img = imread('lena.jpg');

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

% 统计图像的灰度直方图
histogram = imhist(gray_img);

% 计算灰度直方图的累积分布函数
cdf = cumsum(histogram) / numel(gray_img);

% 根据累积分布函数将每个像素的灰度值映射到0-255之间
equalized_img = uint8(255 * cdf(gray_img + 1));

% 显示均衡后的图像
figure;
subplot(1, 2, 1);
imshow(gray_img);
title('Original Image');
subplot(1, 2, 2);
imshow(equalized_img);
title('Equalized Image');
使用matlab实现:直方图均衡用于增强图像对比度。将图像的强度直方图转换为均匀概率密度函数。此功能往往会在背景中引入噪点。直方图均衡离散灰度等级为5

原文地址: https://www.cveoy.top/t/topic/btG4 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录