我正在科学地处理来自显微镜的图像,其中 3 个 RGB 通道中的每一个都被编码为 uint16 (0-65536)。目前我使用 OpenCV2 和 NumPy 处理图像,并使用标志“cv2.IMREAD_UNCHANGED”读取一切正常,我可以对图像做一些工作并将其返回到 uint16,
img = cv2.imread('dummy.tif',cv2.IMREAD_UNCHANGED )
#do some work here
img = img.astype(numpy.uint16)
cv2.imwrite('processed.tif',img )
但是,到目前为止,我似乎找不到任何方法将处理后的图像再次保存为 16 位 RGB。使用 cv2.imwrite 命令只需将图像转换为 uint8,从而将所有内容变为白色(即,所有内容都被截断为 255,uint8 通道的最大值)。
知道如何进行吗?