以下是使用 MATLAB 实现直方图均衡化的代码:

% 读取图像
img = imread('image.jpg');

% 获取图像的灰度直方图
[h, bins] = imhist(img);

% 计算累积分布函数
cdf = cumsum(h) / numel(img);

% 将累积分布函数映射到新的像素值范围
new_bins = round(cdf(bins) * (numel(bins) - 1));

% 应用新的像素值
eq_img = zeros(size(img));
for i = 1:size(img, 1)
    for j = 1:size(img, 2)
        eq_img(i, j) = new_bins(img(i, j) + 1);
    end
end

% 显示原始图像和增强后的图像
figure;
subplot(1, 2, 1);
imshow(img);
title('原始图像');
subplot(1, 2, 2);
imshow(eq_img);
title('增强后的图像');

在这个代码中,我们首先读取了一张图像,并计算了它的灰度直方图。然后,我们计算了图像的累积分布函数,并将其映射到新的像素值范围。最后,我们将新的像素值应用到原始图像中,并显示原始图像和增强后的图像。

MATLAB 图像增强:直方图均衡化

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

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