OpenCV空二进制图像C ++

时间:2015-02-27 15:11:20

标签: c++ opencv

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

到目前为止,我有:

Mat canvas(2000, 800, 1)

但我想要它,以便每个像素的值只能是零或一。

问候。

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:0)

its documentation,您可以声明:

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

以0开始并填充画布。