Gamma变换
一、Gamma变换
就是对图片的像素值做了一个非线性映射。
当gamma>1时,蓝色线表示,输出的亮度大于输入的亮度,图片会变亮。 当gamma<1时,如红色线所示,图片会变暗。
二、代码实现opencv中应该没有对应的函数,查到的资料都是自己实现的。不难。
首先创建一个长度为256的列表。映射关系就是 i --> ((i/255) ** gamma)*255。比如: 0 ---> 0 255 ---> 255
cv2.LUT函数就是将图像查表然后得到一幅图像。如果图像是一个灰度图,就直接查表,用灰度值进行查找,得到最后的值。如果图像是RGB三通道图像,会根据每个通道的值,然后查表看看对应的值是多少,最后三个值再拼起来。
结果:
我们可以看一下灰度值是怎么映射的。打印出table,如下:
可以看到灰度值为1的就变成了40,很快就超过100了。说明图片调亮了。
|