多语言展示
当前在线:1392今日阅读:113今日分享:31

使用Gamma校正调整图像亮度大小(python)

调整图片亮度是常见操作,方法也有多种。比如颜色空间转换或者y=kx+b线性处理方法等都可以实现亮度调整。而Gamma校正作为一种非线性方法也经常使用。
工具/原料
1

python3, opencv3

2

pycharm win7环境

方法/步骤
1

1) Gamma校正:就是为了调整图像亮度或者对比度而产生的一种方法。采用指数方式进行数学表达。 gray**gamma.2) gamma选择:根据显示器的偏色情况 gamma常用的2,2,系数为1/gamma  = 0.45   3)gamma = 1 则无变化4) gamma值小于1 图像整体变亮5) gamma值大于1 图像整体变暗

2

import numpy as npimport cv2 as cvimport mathimage = cv.imread('c:\\meiping1.png')cv.imshow('image', image)

3

gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)cv.imshow('gray', gray)

5

gamma =2.2 情况: 也就是0.45imageR2p2 = np.power(gray / 255.0, 2.2)  #0.45 显示器的伽玛值cv.imshow('imageR2p2', imageR2p2)

6

gamma =0.45情况: 也就是2.2imageR0p4 = np.power(gray / 255.0, 0.454)  #0.454cv.imshow('imageR0p4', imageR0p4)

7

import numpy as npimport cv2 as cvimport mathimage = cv.imread('c:\\meiping1.png')cv.imshow('image', image)gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)cv.imshow('gray', gray)imageR1p0 = np.power(gray / 255.0, 1) cv.imshow('imageR1p0', imageR1p0)imageR2p2 = np.power(gray / 255.0, 2.2)  #0.45 CRT的伽玛值cv.imshow('imageR2p2', imageR2p2)imageR0p4 = np.power(gray / 255.0, 0.454)  #2.2cv.imshow('imageR0p4', imageR0p4)imageR2p8 = np.power(gray / 255.0, 2.8)  #0.35  显像管伽玛值cv.imshow('imageR2p8', imageR2p8)cv.waitKey(0)cv.destroyAllWindows()

注意事项
1

注意gray / 255.0的用法 变成浮点。

2

gamma1 整体变暗

推荐信息