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

标签 python opencv

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

TypeError: image data type = 0 is not supported

有人可以帮我解决这个问题吗?该图像基本上应该稍后用作 mask 。

最佳答案

你可以使用这个:

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

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

关于python - 如何使用 cv2 保存二进制图像(dtype=bool)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44587613/

相关文章:

python - 在keras中对VGG应用ZCA白化

python - 从文本文件中解析项目

python .format 未按预期工作

python - 如果语句不起作用,则按字母顺序排序

python-3.x - 如何使用cv2使用python3提高图像回放的速度

java - OpenCv安卓: Copy part of an image to new Mat

python - 为什么 aiohttp 比 gevent 慢得可怕?

opencv - 是否可以将灰度图像用于现有模型?

opencv - 广义霍夫变换 OpenCV Python 模板

OpenCV cvtColor CV_BGR2HSV CV_32FC3 饱和度范围