如何保存1位位图

时间:2019-06-16 15:30:42

标签: python opencv bitmap bit-depth

我正在准备激光雕刻的图像。这是一个具有黑白,0和255的1位位图,我将其保存为:

import cv2
...
cv2.imwrite("filepath.bmp", bitmap_image)

激光切割器将其视为多级位图,并带有Engrave only support 2-bit bitmap(原文如此)抱怨。我可以在软件内部将其转换为2值位图,但是此额外的处理步骤会干扰我想要的结果。

This page for OpenCV 3 beta建议将其保存为0-1位图是不可能的:

  

使用此功能只能保存8位(或PNG,JPEG 2000和TIFF情况下为16位无符号(CV_16U))单通道或3通道图像。如果格式,深度或通道顺序不同,请在保存之前使用Mat::convertTo()cvtColor()进行转换。或者,使用通用的FileStorage I / O功能将图像保存为XML或YAML格式。

但是this page for OpenCV 3.1提到了2级PNG文件:

  

IMWRITE_PNG_BILEVEL:二进制级别PNG,0或1,默认为0。

在Python中使用该选项会返回错误:

Traceback (most recent call last):
...
    cv2.imwrite("filepath.png", bitmap_image, cv2.IMWRITE_PNG_BILEVEL)
SystemError: <built-in function imwrite> returned NULL without setting an error

如何在OpenCV和Python中保存0-1位图?

0 个答案:

没有答案