Converter np.array do tipo float64 para digitar valores de escala uint8

Eu tenho um np.array específicodados que representa uma imagem em escala de cinza específica. Eu preciso usar o SimpleBlobDetector () que, infelizmente, só aceita imagens de 8 bits, por isso preciso converter essa imagem, obviamente com perda de qualidade.

Eu já tentei:

import numpy as np
import cv2
[...]
data = data / data.max() #normalizes data in range 0 - 255
data = 255 * data
img = data.astype(np.uint8)
cv2.imshow("Window", img)

Mascv2.imshow não está dando a imagem como esperado, mas com uma distorção estranha ...

No final, eu só preciso converter um np.float64 para np.uint8 dimensionando todos os valores e truncando o restante, por exemplo. 65535 se torna 255, 65534 se torna 254 e assim por diante .... Alguma ajuda?

Obrigado.

questionAnswers(2)

yourAnswerToTheQuestion