直方图均衡化
灰度直方图,反应了数字图像中每一灰度级与该灰度出现的频率之间的对应关系。直方图均衡化可以不改变像素的位置,只改变像素的灰度值,通过这种方法做到增强图像的对比度、使感兴趣的部分看的更清楚。
实验思路
把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分 布。直方图均衡化就是对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范围内的像素数量大致相同。首先计算原始图像的像素的直方图分布,记录在数组 NK 中之后计算出图像的直方图的累计分布,记录在数组 CH 中,之后根据公式
i
m
g
2
(
i
,
j
)
=
r
o
u
n
d
(
n
∗
C
H
(
i
m
g
1
(
i
,
j
)
+
1
)
/
(
h
∗
w
)
)
img2(i, j) = round(n ∗ CH(img1(i, j) + 1)/(h ∗ w))
img2(i,j)=round(n∗CH(img1(i,j)+1)/(h∗w))计算出像素转化后的结果,这个结果与 n(灰度级数)有关由于图像的存储需要 8bit,所以需要按比例进行像素转化
i
m
g
2
=
u
i
n
t
8
(
i
m
g
2
∗
L
/
n
)
img2 = uint8(img2 ∗ L/n)
img2=uint8(img2∗L/n)
主函数代码:
%%
clc;
clear;
close all;
%% 读取图片
filename = 'bridge'; %测试图像1
im = imread([filename, '.jpg']);
n_1 = 2;
n_2 = 64;
n_3 = 256;
%% 将图像进行直方图均衡化
im_histeq_1 = myHisteq(im, n_1);
im_histeq_2 = myHisteq(im, n_2);
im_histeq_3 = myHisteq(im, n_3);
%% 将结果保存到当前目录下的result文件夹下
imwrite(im_histeq_1, sprintf('result/_%s_eq_%.d.jpg', filename, n_1));
imwrite(im_histeq_2, sprintf('result/_%s_eq_%.d.jpg', filename, n_2));
imwrite(im_histeq_3, sprintf('result/_%s_eq_%.d.jpg', filename, n_3));
%% 显示结果
figure(1);
subplot(221); imshow(im); title('原图'); axis on
subplot(222); imshow(im_histeq_1); title('直方图均衡化, n=2'); axis on
subplot(223); imshow(im_histeq_2); title('直方图均衡化, n=64'); axis on
subplot(224); imshow(im_histeq_3); title('直方图均衡化, n=256'); axis on
功能函数:
function [img_2] = myHisteq(img_1, n)
size_1 = size(img_1);
h = size_1(1);
w = size_1(2);
img_1 =double(img_1);
img_2 = zeros(h, w); %直方图均衡后的图像
L = 256;
NK = zeros(L,1); %NK是图像的直方图分布
for i = 1:h
for j = 1:w
num = img_1(i,j) + 1;
NK(num) = NK(num) + 1;
end
end
CH = zeros(L,1); %CH是图像的直方图的累计分布
for i = 1:L
for j = 1:i
CH(i) = CH(i) + NK(j);
end
end
%向量化循环
i = 1:h;
j = 1:w;
img_2(i,j) = round( n * CH(img_1(i,j) + 1)/(h * w));
img_2 = uint8(img_2 * L / n);
end
实验结果
下图分别是灰度级为 2、64 以及 256 的直方图均衡化的结果对比
实验分析
从上述实验结果可以看出,经过直方图均衡化后的图片的对比度更高,有利于人眼的观看识别。直方图均衡化可以达到增强图像的显示效果的作用。通过原图像的直方图可以观察出,图像中各种亮度所占的比例大都分布不均匀,直方图增强的方法就是压缩直方图中比例少的像素所占用的灰度范围,多出来的灰度空间按照统计比例分配给直方图中比例高的像素使用。这种方法主要是针对人眼对灰度差别越大的图像更容易分辨的特点而做的增强。
直方图均衡化由于可能会丢失一些灰度级,所以造成图片信息在一定程度上的损失。变换后图像的灰度级减少也会使某些细节消失。并且某些图像经均衡化处理后的对比度不自然的过分增强。