Matlab-通过循环创建子图显示不同γ值的γ校正结果
由于数字显示设备的非线性转换特征,使得图像的显示与原始场景相比较而言发生偏暗或偏亮的现象,这个时候就可以采用γ校正进行处理,使图像的显示等于或接近原始场景。
一、imadjust函数调整图像对比度
在Matlab中可以通过函数 J = imadjust(I, [low_in high_in], [low_out high_out], gamma) 实现对图像的Gamma校正。
[low_in high_in]:输入图像的对比度范围,默认为[0 1]。
[low_out high_out]:输出图像的对比度范围,默认为[0 1]。
gamma:描述输入和输出值关系的曲线形状,默认为1。
二、代码实现循环创建子图显示不同γ值的γ校正结果
%% Gamma校正 P = imread('light.jpg');% 偏亮的图像 % P = imread('dark.jpg');偏暗的图像 Pg = rgb2gray(P); C = cell(1,5); %创建元胞数组 C{1,1} = imadjust(Pg, [0 1], [0 1], 1); C{1,2} = imadjust(Pg, [0 1], [0 1], 2); C{1,3} = imadjust(Pg, [0 1], [0 1], 0.5); C{1,4} = imadjust(Pg, [0 1], [0 1], 4); C{1,5} = imadjust(Pg, [0 1], [0 1], 0.25); a = {'Gamma=1', 'Gamma=2', 'Gamma=1/2', 'Gamma=4', 'Gamma=1/4'}; for i = 1:5 subplot(2,5,i); imshow(C{1,i}); title(a{i}); subplot(2,5,i+5); imhist(C{1,i}); end
结果如下: