图像增强算法
发布时间
阅读量:
阅读量
图像增强算法
DSIHE(等面积双子图像直方图均衡化);
RMSHE(基于递归平均分离直方图均衡化的对比度增强算法);
WTHE(基于权值阈值的直方图均衡算法) ;
AMHE(自适应改进直方图均衡化);
RSIHE算法(递归子图像直方图均衡化);
红外图像直方图双向均衡技术研究
原始图像
首先介绍BBHE算法实现,其他算法之后一一介绍
保持亮度的双直方图均衡化(Brightness Preserving Bi-Histogram Equalization,BBHE)是由Kim提出的图像对比度增强算法,它能够在增强图像对比度的同时保持输入图像的平均亮度。直方图均衡化很少应用于诸如电视等消费电子产品中,因为直接使用直方图均衡化可能改变输入图像的原始亮度、降低视觉质量,而且直方图均衡化时生成的输出图像的平均亮度接近中间灰度,这并不能使亮度得以保存。
BBHE算法是根据均值将图像分为俩幅子图,一副子图像素值小于或等于原图像均值,另一幅是像素值大于原图像均值,然后分别对这俩幅图像进行直方图均衡化。利用BBHE增强的图像其平均亮度位于输入平均值和中间灰度的中间,与典型的直方图均衡化结果(输出平均值总是中间值)相比,BBHE增强的图像明显地保持了亮度。仿真结果也证明了BBHE在增强对比度的同时具有良好的亮度保持功能。因此,在消费电子领域,如电视、录像机或摄录机,利用BBHE算法可以使许多应用成为可能。为了在实际应用中有效地利用BBHE算法,需要努力降低算法的复杂度,如利用量化概率密度函数的方法。
%最早Kim在1997年提出BBHE算法[6],为的是在增强图像对比度的同时保
%持灰度图像的亮度,这种算法是将输入图像分成两个子图像,第一个图像
%的灰度值拉伸到最小值和均值之间,第二个子图像灰度值调整到均值和最
%大值之间。
img=imread('D:\2.png');
img=rgb2gray(img);
imshow(img,[]);
sz = size(img);
o_mean = round(mean(img(:)));
% zhifangtu
h_l = zeros(256,1);
h_u = zeros(256,1);
for i = 1:sz(1)
for j = 1:sz(2)
g_val = img(i,j);
if(g_val<=o_mean)
h_l(g_val+1) = h_l(g_val+1) + 1;
else
h_u(g_val+1) = h_u(g_val+1)+ 1;
end
end
end
% NORMALIZED HISTOGRAM OR PDF
nh_l = h_l/sum(h_l);
nh_u = h_u/sum(h_u);
% CDF
hist_l_cdf = double(zeros(256,1));
hist_u_cdf = double(zeros(256,1));
hist_l_cdf(1) = nh_l(1);
hist_u_cdf(1) = nh_u(1);
for k = 2:256
hist_l_cdf(k) = hist_l_cdf(k-1) + nh_l(k);
hist_u_cdf(k) = hist_u_cdf(k-1) + nh_u(k);
end
% IMAGE MODIFICATION图像修正
equalized_img = zeros(sz);
range_l = [0 o_mean];
range_u = [(o_mean+1) 255];
for i =1:sz(1)
for j =1:sz(2)
g_val = img(i,j);
if(g_val<=o_mean)
equalized_img(i,j) = range_l(1) + round(((range_l(2)-range_l(1))*hist_l_cdf(g_val+1)));
else
equalized_img(i,j) = range_u(1) + round(((range_u(2)-range_u(1))*hist_u_cdf(g_val+1)));
end
end
end
figure,imshow(uint8(equalized_img))
title('BBHE的直方图');
figure,imhist(uint8(equalized_img))
title('BBHE的直方图');
全部评论 (0)
还没有任何评论哟~
