matlab 内置实现:imadjust
Gamma Correction
gamma correction formula : .^(gamma) or .^(1/gamma)?
用以调整图像光照强度的非线性操作,其数学形式为:
Vout=AVγin
- 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