如何使用 cv2 保存二进制图像(dtype=bool)?

新手上路,请多包涵

我在 python 中使用 opencv 并想保存二进制图像 (dtype=bool)。如果我只是使用 cv2.imwrite 我会收到以下错误:

 TypeError: image data type = 0 is not supported

有人可以帮我弄这个吗?该图像基本上应该稍后用作遮罩。

原文由 Vaibhav Dixit 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
1 个回答

你可以使用这个:

 cv2.imwrite('mask.png', maskimg * 255)

因此,这会将其隐式转换为整数,为 --- 提供 0,为 False True 1,并在写入之前将其乘以 255 以制作(位)掩码。 OpenCV 非常宽容并写入 int64 具有 8 位深度的图像(但例如 uint16 具有 16 位深度的图像)。该操作 就地完成,因此您仍然可以使用 maskimg 进行索引等。

原文由 John 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题