Python:如何保存16位通道的图像(例如48 RGB)?

2024-09-28 03:19:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在科学地处理显微镜上的图像,其中3个RGB通道中的每一个都被编码为uint16(0-65536)。目前我使用OpenCV2和NumPy来处理图像,并使用“cv2.IMREAD_unchange”标志,所有的读取操作都很好,我可以对图像进行一些处理并将其返回到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通道的最大值)。

知道怎么做吗?


Tags: 图像numpy内容编码img科学rgbcv2
2条回答

OpenCV确实支持写入16位TIFF图像。

请确保使用的是当前版本(>;=2.2)。

在用OpenCV保存之前,代码中的img可能会发生截断。

如果用cv2.CV u替换numpy.uint16,也许会有帮助。 在某些示例中,参数作为字符串传入,例如“uint16”。

Sry,名声太低了,不能发表评论。

相关问题 更多 >

    热门问题