顏色估計模型(Color Estimation Model,CEM)是Fu等人提出的一種映射方法,它可以將較小的灰度值映射爲較大的灰度值,從而提高圖像的整體亮度。對於逆光圖像I,通過CEM增強後的得到的圖像爲:
,這裏,爲單調映射函數。
對於CEM模型,有如下形式:,其中,爲調節參數(本文取值:1.33),爲圖像I的灰度均值。
利用CEM對逆光圖像進行全局增強,可以提高輸入圖像的整體亮度,恢復圖像的顏色與細節信息。
Matlab代碼實現:
function ColorEstimationModel()
[f,p]=uigetfile('*.*','選擇圖像');
if f
I=imread(strcat(p,f));
end
%I=rgb2gray(I);
I=im2double(I);
IGE=CEM(I);
subplot(1,2,1);
imshow(I);
xlabel('a). 原始圖像');
subplot(1,2,2);
imshow(IGE,[]);
xlabel('b). 顏色估計模型增強');
end
function f = CEM(I)
J=I;
fCEM=I;
[m,n]=size(I);
area=m*n;
all=0;
for i=1:m
for j=1:n
all=all+I(i,j);
end
end
MI=all/area;
for i=1:m
for j=1:n
fCEM(i,j)=exp(double((-1.33)*I(i,j)/MI));
J(i,j)=(1-fCEM(i,j))/(1+fCEM(i,j));
end
end
f=J;
end