我正在创建一个图像:
image = np.empty(shape=(height, width, 1), dtype = np.uint16)
之后,我将图像转换为 BGR 模型:
image = cv2.cvtColor(image, cv2.COLOR_GRAY2BGR)
我想现在将图像转换为 adtype = np.uint8
以便将该图像与cv2.threshold()
功能一起使用。我的意思是,我想将图像转换为CV_8UC1
.
你可以使用cv2.convertScaleAbs
这个问题。请参阅文档。
查看下面的命令终端演示:
>>> img = np.empty((100,100,1),dtype = np.uint16)
>>> image = cv2.cvtColor(img,cv2.COLOR_GRAY2BGR)
>>> cvuint8 = cv2.convertScaleAbs(image)
>>> cvuint8.dtype
dtype('uint8')
希望能帮助到你!!!
我建议你使用这个:
outputImg8U = cv2.convertScaleAbs(inputImg16U, alpha=(255.0/65535.0))
这将输出一个 uint8 图像并相对于 0-65535 之间的先前值分配 0-255 之间的值
exemple :
pixel with value == 65535 will output with value 255
pixel with value == 1300 will output with value 5 etc...