MATLAB 图像增强:直方图均衡化
以下是使用 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('增强后的图像');
在这个代码中,我们首先读取了一张图像,并计算了它的灰度直方图。然后,我们计算了图像的累积分布函数,并将其映射到新的像素值范围。最后,我们将新的像素值应用到原始图像中,并显示原始图像和增强后的图像。
原文地址: https://www.cveoy.top/t/topic/mXdC 著作权归作者所有。请勿转载和采集!