【发布时间】:2021-02-21 19:11:55
【问题描述】:
我想要使图像更亮。所以我只是将它转换为 HSV 并将 V 值乘以我需要的系数。但是输出图像中有暗块。
原图:
出图:
代码:
import cv2
import numpy as np
real_4 = cv2.imread('data/data_4_real_cut.jpg')
k = 5
cv2.imshow('orig 4', real_4)
hsv_4 = cv2.cvtColor(real_4, cv2.COLOR_BGR2HSV)
hsv_4[:, :, 2] *= k
bgr_again = cv2.cvtColor(hsv_4, cv2.COLOR_HSV2BGR)
cv2.imshow('orig 4 high', bgr_again)
cv2.waitKey(0)
据我了解,当我将 V 值乘以所需系数时,它可能超出 0 - 255 范围。但我不确定它,我没有找到任何关于它的信息。当然,问题是 - 为什么图像中有暗块?谢谢!
【问题讨论】:
-
您需要裁剪这些值。当你相乘时,它可以超出 V 或 S 中的 0-255,这会导致回绕,使 256 变为 0,等等。所以使用
.clip(0,255)剪辑你的值