将一个16位(0~65535)的图像Image转换成8位(0~255),有几种方法:
1、直接使用np.uint8()进行转换。
import cv2
import numpy as np
path = 'uint16_img.png'
uint16_img = cv2.imread(path, cv2.IMREAD_UNCHANGED)
uint8_img = np.uint8(uint16_img)
2、将uint16转float32,float16(对数据完全的转化,没有任何损失)
input_image = np.asanyarray(input_image, dtype="float32")