CrazyBingo

亮度算法的MATLAB实现

0
阅读(21678)

亮度算法的MATLAB实现

1.1. 亮度算法介绍

1.1.1. 图像处理之调整亮度与对比度

很多时候,一张图像被过度曝光显得很白,或者光线不足显得很暗,有时候背景跟图像人物也观察不清楚,这个时候可以通过调节图像的两个基本属性-亮度与对比度来获得整体效果的提升,从而得到质量更高的图片。

1.1.2. 基本原理:

图像亮度本质上图像中每个像素的亮度,每个像素的亮度本质上RGB值的大小,RGB值为0是像素点为黑色,RGB都为255时像素点最亮,为白色。对比度则是不同像素点之间的差值,差值越大,对比度越明显。从直方图分析的观点来看,对比度越好的图片,直方图曲线会越明显,分布也越显得均匀。

1.2. 亮度算法实现

1.2.1. 算法流程

对比度 contrast的最佳取值范围在[0 ~ 4]

亮度 brightness的最佳取值范围在[0~ 2]之间

1) 调整图像亮度与对比度算法主要由以下几个步骤组成:

2) 计算图像的RGB像素均值– M

3) 对图像的每个像素点Remove平均值-M

4) 对去掉平均值以后的像素点 P乘以对比度系数

5) 对步骤上处理以后的像素P加上 M乘以亮度系统

6) 对像素点RGB值完成重新赋值

1.2.2. Matlab代码
IMG1 = double(rgbimg); for i = 1 : h for j = 1 : w

        IMG2(i,j,1) = 4 * IMG1(i,j,1);  %RED Channel

        IMG2(i,j,2) = 4 * IMG1(i,j,2);  %GREEN Channel

        IMG2(i,j,3) = 4 * IMG1(i,j,3);  %BLUE Channle if (IMG2(i,j,1) >= 255)     IMG2(i,j,1) = 255;  end if (IMG2(i,j,2) >= 255)     IMG2(i,j,2) = 255;  end if (IMG2(i,j,3) >= 255)     IMG2(i,j,3) = 255;  end    

    end

end

IMG2 = uint8(IMG2); %不转换为8位就无法正常显示

subplot(1,2,2);     %分为1行2列的子图显示,并且在2显示调整对比度后的图

imshow(IMG2);

title('Processed Image');

线性提高3倍亮度

1.3. 效果图

wps_clip_image-3978