Gamma变换

 

 

 

一、Gamma变换

Gamma变换_第1张图片

 

就是对图片的像素值做了一个非线性映射。

 

 

Gamma变换_第2张图片

 

当gamma>1时,蓝色线表示,输出的亮度大于输入的亮度,图片会变亮。

当gamma<1时,如红色线所示,图片会变暗。

 

 

 

二、代码实现

opencv中应该没有对应的函数,查到的资料都是自己实现的。不难。

 

Gamma变换_第3张图片

 

首先创建一个长度为256的列表。映射关系就是 i --> ((i/255) ** gamma)*255。比如:

0 ---> 0

255 ---> 255

 

cv2.LUT函数就是将图像查表然后得到一幅图像。如果图像是一个灰度图,就直接查表,用灰度值进行查找,得到最后的值。如果图像是RGB三通道图像,会根据每个通道的值,然后查表看看对应的值是多少,最后三个值再拼起来。

 

 

结果:

Gamma变换_第4张图片

 

Gamma变换_第5张图片

 

 

我们可以看一下灰度值是怎么映射的。打印出table,如下:

Gamma变换_第6张图片

 

可以看到灰度值为1的就变成了40,为2的变成50了,为3的变成57了。。。很快就超过100了。说明图片调亮了。

 

 

 

 

 

你可能感兴趣的:(10,OpenCV图像处理)