我有一个特定的np.array data,它代表了一张特定的灰度图像。我需要使用SimpleBlobDetector(),但是它只能接受8位图像,所以我需要转换这个图像,显然会有质量损失。
我已经尝试过:
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)
但是cv2.imshow显示的图像不如预期,存在奇怪的变形...
最终,我只需要将np.float64转换为np.uint8,缩放所有值并截断剩余部分,例如,65535变为255,65534变为254,以此类推... 有什么帮助吗?
谢谢。
data
的类型是np.float64
吗?此外,将 65535 转换为 255 对我来说似乎意味着您期望的输入类型是np.uint16
,而不是np.float64
。 - rayryeng