黑白图像的图像增强
这里会出现过度增强的问题(天空部分)。
function ret = HE_for_BW(Image)
if size(Image,3) ~= 1
fprintf('ERROR Imput-Image must be three channel image\n');
return;
end
Height_Image = size(Image,1);
Width_Image = size(Image,2);
Img_Output = zeros(Height_Image,Width_Image);
Histgram = zeros(1,255);
for row = 1: Height_Image
for col = 1: Width_Image
if Image(row,col) == 0
Image(row,col) = 1;
end
Histgram(uint8(Image(row,col))) = Histgram(uint8(Image(row,col))) + 1;
end
end
Probability_density = Histgram./(Height_Image*Width_Image);
max_value = max(max(Image));
min_value = min(min(Image));
Probability = zeros(1,255);
for temp = 1: size(Probability_density,2)
if temp == 1
Probability(temp) = Probability_density(temp);
else
Probability(temp) = Probability(temp - 1) + Probability_density(temp);
end
end
for row = 1: Height_Image
for col = 1: Width_Image
Img_Output(row,col) = min_value + (max_value - min_value)*Probability(uint8(Image(row,col)));
end
end
ret = Img_Output;
end