将类型为float64的np.array转换为类型为uint8的数组,缩放值。

4 浏览
0 Comments

将类型为float64的np.array转换为类型为uint8的数组,缩放值。

我有一个特定的np.array数据,代表一个特定的灰度图像。

我需要使用SimpleBlobDetector(),但它只接受8位图像,所以我需要将这个图像转换,显然会有质量损失。

我已经尝试过:

import numpy as np
import cv2
[...]
data = data / data.max() #将数据归一化到0-255的范围
data = 255 * data
img = data.astype(np.uint8)
cv2.imshow("Window", img)

但是cv2.imshow没有按预期显示图像,而是出现了奇怪的扭曲...

最后,我只需要将np.float64转换为np.uint8,缩放所有值并截断剩余部分,例如65535变为255,65534变为254,依此类推... 有任何帮助吗?

谢谢。

0