OpenCV空二进制图像C++

OpenCV Empty Binary Image C++

本文关键字:C++ 图像 二进制 OpenCV      更新时间:2023-10-16

我希望在OpenCV中创建一个二进制图像,其中所有值都初始化为0。我希望它的尺寸是2000x800。

到目前为止,我有:

Mat canvas(2000, 800, 1)

但我希望每个像素的值只能是零或一。

谨致问候。

OpenCV不支持位字段,即深度为1位的Mat。这里面有合理的理由;对位字段的操作明显较慢,因为位不是硬件的固有操作类型。因此,Getpixel和setpixel将需要额外的操作。

Mat canvas = Mat::zeros(800,600,CV_8UC1);

将创建深度为8位的零初始化图像;将浪费7个比特。

从它的文档中,您可以声明:

Mat canvas(2000, 800, 1, Scalar(0));

启动并用0填充画布。