文件中的 zbar::Image::Image() 并没有说明任何关于可接受的图像格式的信息。
zbar::Image::Image ( unsigned width = 0, unsigned height = 0, const std::string & format = "", const void * data = NULL, unsigned long length = 0 ) [inline]构造函数。
用指定的参数创建一个新的Image
自 format
是一个字符串,而不是一个枚举,我不能知道可能的值。我唯一知道的值是 Y800
来自 scan_image.cpp zbar自带的样本。
Image image(width, height, "Y800", raw, width * height);
还有其他可能的值吗?另外,如果我在编译时不支持ImageMagick,会不会有问题(我通过了 --without-imagemagick
到 ./configure
)?
编辑。 我发现了另一种可能的格式 回答 到另一个问题。
顺便说一下:zbar也接受GRAY格式。
通过库代码,支持的fourcc格式取决于你需要使用的视频捕获api。
zbarvideov4l1. c,Video4Linux,v4l1_formats[]列出了GREY,HI24(HI240),RGBP(RGB565),BGR3(RGB24),BGR4(RGB32),RGBO(RGB555)。YUY2 (YUV422), YUYV, UYVY, Y41P (YUV411), 422P (YUV422P), 411P (YUV411P), YU12 (YUV420P), YUV9 (YUV410P)。
zbarvideovfw.c, Video for Windows, vfw_formats[]列出了I420, YV12, NV12, UYVY, YUY2, BGR3, BGR4, YVU9, GREY, Y800, JPEG。
当然更多的是你想看到的,这也要看相机能提供什么。 毫无疑问,你必须将此作为配置设置。