OpenCV 空二进制图像 C++

Squ*_*osh 2 c++ opencv

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

到目前为止,我有:

Mat canvas(2000, 800, 1)
Run Code Online (Sandbox Code Playgroud)

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

问候。

Boy*_*nov 5

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

Mat canvas = Mat::zeros(800,600,CV_8UC1);
Run Code Online (Sandbox Code Playgroud)

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