我正在从显微镜的图像科学地工作,其中3个RGB通道的每一个都编码为uint16(0-65536)。目前我使用OpenCV2和NumPy的与图像工作,并使用标志“cv2.IMREAD_UNCHANGED”一切正常与读取,我可以做在图像上的一些工作,并返回到UINT16,Python:如何用16位通道保存图像(例如48 RGB)?
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通道的最大值)。
任何想法如何进行?
你是100%正确的 - 我不小心将我的图像保存为.bmp,因此丢失了16位...愚蠢的错误=) – Bjarke