gpt4 book ai didi

python - 如何在opencv python中更改图像照明

转载 作者:太空狗 更新时间:2023-10-29 22:02:15 24 4
gpt4 key购买 nike

我正在用 python opencv 读取图像,现在我需要将此图像上的照明更改为更暗或更亮,我应该使用什么样的方法来启用它?

最佳答案

我知道我来晚了,但我建议使用 Gamma 校正

什么是 Gamma 校正

我通俗的讲一下:

  • 要在屏幕上显示图像,需要输入电压。
  • 此电压作为光强度输出。
  • 在完美世界中,输入电压与输出强度呈线性关系。
  • 但实际屏幕输出接近于指数曲线,指数为 Gamma

由于计算机屏幕将 Gamma 值应用于屏幕上的图像,因此应用反 Gamma 来抵消这种影响的过程称为 Gamma 校正

enter image description here

这是使用 OpenCV 3.0.0 和 python 的相同代码:

import cv2
import numpy as np

def adjust_gamma(image, gamma=1.0):

invGamma = 1.0 / gamma
table = np.array([((i / 255.0) ** invGamma) * 255
for i in np.arange(0, 256)]).astype("uint8")

return cv2.LUT(image, table)

x = 'C:/Users/524316/Desktop/stack/test.jpg' #location of the image
original = cv2.imread(x, 1)
cv2.imshow('original',original)

gamma = 0.5 # change the value here to get different result
adjusted = adjust_gamma(original, gamma=gamma)
cv2.putText(adjusted, "g={}".format(gamma), (10, 30),cv2.FONT_HERSHEY_SIMPLEX, 0.8, (0, 0, 255), 3)
cv2.imshow("gammam image 1", adjusted)

cv2.waitKey(0)
cv2.destroyAllWindows()

这是原图:

enter image description here

应用值为 0.5 的 gamma 将产生:

enter image description here

应用值为 1.5 的 gamma 将产生:

enter image description here

应用值为 2.5 的 gamma 将产生:

enter image description here

应用值为 1.0 的 Gamma 将产生相同的图像。

Code was borrowed from this link

关于python - 如何在opencv python中更改图像照明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33322488/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com