Python, OpenCV: aumentando o brilho da imagem sem sobrecarregar a matriz UINT8

Estou tentando aumentar o brilho de uma imagem em escala de cinza.cv2.imread() retorna uma matriz numpy. Estou adicionando valor inteiro a todos os elementos da matriz. Teoricamente, isso aumentaria cada um deles. Depois disso, eu seria capaz de colocar o limite superior de 255 e obter a imagem com o brilho mais alto.

Aqui está o código:

grey = cv2.imread(path+file,0)

print type(grey)

print grey[0]

new = grey + value

print new[0]

res = np.hstack((grey, new))

cv2.imshow('image', res)
cv2.waitKey(0)
cv2.destroyAllWindows()

No entanto, a rotina interna do OpenCV aparentemente faz algo assim:

new_array = old_array % 255

Todo valor de intensidade de pixel maior que 255 se torna o restante da divisão por 255.

Como resultado, estou ficando escuro em vez de completamente branco.

Aqui está a saída:

<type 'numpy.ndarray'>
[115 114 121 ..., 170 169 167]
[215 214 221 ...,  14  13  11]

E aqui está a imagem:

Como posso desligar esse mecanismo restante? Existe alguma maneira melhor de aumentar o brilho no OpenCV?

questionAnswers(4)

yourAnswerToTheQuestion