ISP Matlab 图像对比度增强——LCC算法学习
LCC算法全名local color correction,用于增强图像的对比度,英文全文在IPOL可以下载。
算法设计思路
- 计算输入图像的mask image
- 将输入与mask image进行计算,完成2幅图像的组合
Matlab实现
下面给出Matlab实现的主体部分,比较简单。
%% 算法参数配置
Rad = 2;
sigma = 2;
filter_kernel1 = fspecial('gaussian',2*Rad+1 , sigma);
pix_width = 8;
pix_max = 2^pix_width;
pix_mid = 2^(pix_width-1);
%% 算法主体
mask_img = (img_in(:,:,1) + img_in(:,:,2) + img_in(:,:,3))./3;
mask_img = pix_max - mask_img;
gaus_out = imfilter(mask_img(:,:,:),filter_kernel1,'symmetric');
img_out = zeros(m, n, d);
test = (2.^((pix_mid-gaus_out(:,:,:))./pix_mid));
for ch =1:1:3
img_out(:,:,ch) = pix_max.*(img_in(:,:,ch)./pix_max).^(2.^((pix_mid-gaus_out(:,:,:))./pix_mid));
end
测试
采用莫里斯大教堂作为测试输入,分别选择了一副稍亮和一副偏暗的图像送入算法进行处理,在输入图像动态范围较宽时,测试算法自身的适应型能力。
- 测试用例1
- 测试用例2
针对2幅场景, 该算法均对图像有一定的改善,实际针对视频场景需要评估。