如何使用opencv python调整亮度,对比度和振动?

问题描述 投票:1回答:2

我是图像处理的新手。我在Python3中编程并使用OpenCV图像处理库。我想调整以下属性。

  1. 亮度
  2. 对比
  3. 鲜艳
  4. 色调
  5. 饱和
  6. 亮度

对于4,5,6。我使用以下代码转换为HSV空间。

hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
h, s, v = cv2.split(hsv)
h += value # 4
s += value # 5
v += value # 6
final_hsv = cv2.merge((h, s, v))
img = cv2.cvtColor(final_hsv, cv2.COLOR_HSV2BGR)

我发现1和2的唯一教程是here。本教程使用C ++,但我用Python编程。另外,我不知道如何调整3. vibrance。我非常感谢你的帮助,谢谢!

python opencv brightness contrast
2个回答
3
投票

感谢@MarkSetchell提供链接。简而言之,答案仅使用numpy,公式可以如下所示。

new_image =(old_image)×(对比度/ 127 + 1) - 对比度+亮度

这里对比度和亮度是[-127,127]范围内的整数。标量127用于该范围。另外,下面是我使用的代码。

brightness = 50
contrast = 30
img = np.int16(img)
img = img * (contrast/127+1) - contrast + brightness
img = np.clip(img, 0, 255)
img = np.uint8(img)

0
投票

简单的亮度方式,适用于彩色和单色图像

img = cv2.imread('your path',0)
brt = 40  // value could be + or - for brightness or darkness

img[img < 255-brt] += brt    //change any value in the 2D list < max limit

cv2.imshow('img'+ img)

input image

output image

© www.soinside.com 2019 - 2024. All rights reserved.