【发布时间】:2019-05-27 23:52:58
【问题描述】:
我发现此代码可将图像自动变亮至最佳水平。
% AUTOBRIGHTNESS
% -->Automatically adjusts brightness of images to optimum level.
% e.g. autobrightness('Sunset.jpg','Output.jpg')
function autobrightness(input_img,output_img)
my_limit = 0.5;
input_image=imread(input_img);
if size(input_image,3)==3
a=rgb2ntsc(input_image);
else
a=double(input_image)./255;
end
mean_adjustment = my_limit-mean(mean(a(:,:,1)));
a(:,:,1) = a(:,:,1) + mean_adjustment*(1-a(:,:,1));
if size(input_image,3)==3
a=ntsc2rgb(a);
end
imwrite(uint8(a.*255),output_img);
- 我想问,为什么
my_limit的值是0.5? - 我们如何确定该值?
- 为什么使用“ntsc”色彩空间而不是其他色彩空间,如 hsv、lab 或 yCbCr?
【问题讨论】:
-
这些是你应该问代码作者的事情。我同意你的观点,NTSC(“Never The Same Color”)是一个奇怪的选择。
标签: image matlab image-processing rgb brightness