как увеличить яркость куска изображения rgb без перекрытия? - PullRequest
0 голосов
/ 08 мая 2020

У меня есть изображение, как показано ниже, и я хочу увеличить яркость области молнии.

мое входное изображение: 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

Я просто хочу увеличить яркость молнии, но сейчас я наблюдаю увеличение яркость всего изображения. Честно говоря, я сбит с толку и не знаю, что делать.

1 Ответ

1 голос
/ 09 мая 2020

Можно не складывать, а умножать на число. См. Пример:

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

...