matlab 内置实现:imadjust
Gamma Correction
gamma correction formula : .^(gamma) or .^(1/gamma)?
用以调整图像光照强度的非线性操作,其数学形式为:
Vin :非负实数值,比如为图像像素;A :某一常数,通常情况下取值为 1,输入输出的范围一般为 [0, 1];
γ<1 :光照强度变强,称为 gamma compressionγ>1 :光照强度变弱,称为 gamma expansion
function gammaCorrection(name, a, gamma)
r = imread (name);
r=im2double(r);
r=rgb2gray(r); % 当输入是灰度图像时,删除该句;
s = a * (r .^ gamma);
subplot (1 ,2 ,1), imshow(r), title('Original');
subplot (1 ,2 ,2), imshow(s), title(sprintf('Gamma: %0.1f',gamma));
end