如何增加一块RGB图像的亮度而不出现过度折叠?

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

我有一张图片,如下图所示,我想增加闪电部分的亮度。

我的输入图像。image

这是我的代码

    import cv2 as cv
    import numpy as np

    src = cv.imread('./img.jpg')
    hsv_src = cv.cvtColor(src, cv.COLOR_BGR2HSV)
    v = hsv_src[:,:,2]
    value = 50
    hsv_src[:,:,2]=np.where((255-v)<value,255,v+value) # v+value> 255 
    out = cv.cvtColor(hsv_src,cv.COLOR_HSV2BGR)

    cv.imshow('output',out)
    cv.waitKey(0)

但我最终得到的是这样的结果:result

我只是想增加闪电的亮度 但我现在看到的是增加整个图像的亮度。说实话,我很困惑,不知道该怎么办。

python opencv image-processing rgb hsv
1个回答
1
投票

你可以不加,但可以乘以一个数字。请看这个例子。

import cv2 as cv
import numpy as np

src = cv.imread('zHSbF.jpg')
hsv_src = cv.cvtColor(src, cv.COLOR_BGR2HSV)
v = hsv_src[:,:,2]
k = 1.5
hsv_src[:,:,2]=np.clip(np.uint16(hsv_src[:,:,2])*k, 0, 255)
out = cv.cvtColor(hsv_src,cv.COLOR_HSV2BGR)
cv.imwrite('out8.png', out)
cv.imshow('output',out)
cv.waitKey(0)

enter image description here

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