直方图均衡(HE)在红外图像可视化上的应用(附源码)

直方图均衡(HE)在红外图像可视化上的应用(附源码)
欢迎关注我的微信公众号: 一莫闲记
致力于数字图像处理算法(Matlab、Python、FPGA)

1.背景需求

制冷型红外相机模拟前端使用较高数据位数进行采样,一般常用 14位,16 位。但是人眼对于灰度的感知,最多能感知 128 个灰阶。并且数据一般是以 8 的整数倍的位宽在电子系统中应用,因此大多数的显示器的显示位宽为 8bit,共 256 个灰阶。为了使红外图像可视化,因此需要一种“数据压缩”技术,还需要既可能的不丢失原始图像信息。

2.直方图均衡在红外图像可视化上的应用
我们演示一种很简单的图像对比度提升算法,即直方图均衡方法。下面我将展示直方图均衡(histogram equalization)的主要步骤与结果,并附有完整代码。

原始的14bit图像(以AGC方式调整两个边界压缩至8bit显示)
直方图均衡(HE)在红外图像可视化上的应用(附源码)
1) 直方图 pro 曲线
直方图均衡(HE)在红外图像可视化上的应用(附源码)
直方图分布函数集中区域,如下图
直方图均衡(HE)在红外图像可视化上的应用(附源码)
2) 对直方图分布函数pro累积,得到累计后的sum函数。
直方图均衡(HE)在红外图像可视化上的应用(附源码)
累计函数信息集中区域,如下图
直方图均衡(HE)在红外图像可视化上的应用(附源码)
3) 根据累计 sum 曲线进行非线性映射
newim(i,j)=uint8(sum(J(i,j)+1));
4) 输出8bit图像结果与其直方图
直方图均衡(HE)在红外图像可视化上的应用(附源码)
直方图均衡(HE)在红外图像可视化上的应用(附源码)
3.总结

HE后的图像直方图分布比较均匀离散,图像对比度好 。但是HE算法只是适用某些图像,它是将灰度集中区域进行拉伸得到,也会放大该集中区域的噪声,它是一种“不公平”的映射。它并不是我们所说的真正DDE算法。
这是一种很基础的图像处理手段。不过我们可以理解其思想,了解其基础原理,才有有所创新。

附:MATLAB 源码
%% 1.read raw
path=(‘E:\prj\DDE\MWIR TEST’);
filename=(‘14.raw’);
fid=fopen(fullfile(path,filename));
J=fread(fid,[640,512],‘uint16’);J=J’;
fclose(fid);
%% 2.image histogram statistics
[m,n]=size(J);
pro=zeros(1,16384);
sum=zeros(1,16384);
for i=1:m
for j=1:n
pro(J(i,j)+1)=pro(J(i,j)+1)+1;
end
end
%% 3.calculate sum-curve
sum(1)=pro(1);
for g=2:16384
sum(g)=pro(g)+sum(g-1);
end
newim=zeros(m,n);
sum=sum.256/(mn);
%% 4. projection by sum-curve
for i=1:m
for j=1:n
newim(i,j)=uint8(sum(J(i,j)+1));
if newim(i,j)>255
newim(i,j)=255;
end
end
end
%% 5. 8bit-image show
figure
imshow(uint8(newim));
title(‘newim’);

文章已于2019-12-02修改

微信扫一扫
关注该公众号