Zxing:
https://github.com/glassechidna/zxing-cpp
把程序加入,zxing只需要用cmake及make就可以编译好静态库,把include文件和lib文件位置加入到cmakelist里面就可以了。
加入
zxing::ArrayRef
Ref
inthresult = read_image(source);
zbar
https://sourceforge.net/projects/zbar/files/zbar/0.10/zbar-0.10.tar.bz2/download
Zbar则复杂好多,先用./configure--prefix=$PWD/bin/ --without-gtk --without-qt --without-python --without-imagemagick--host=arm-linux -with-jpeg=no -with-x=no -with-python=no --disable-video
然后再用make-> make check->make install,中间几经反复,终于搞定,删除了la,so文件,直接用了静态库文件,把include,lib文件夹加入到cmakelist.
Mat im = imread("qr2.jpg");
Mat imGray;
cvtColor(im, imGray,CV_BGR2GRAY);
w=imGray.rows;
h=imGray.cols;
ImageScanner scanner;
// configure the reader
scanner.set_config(ZBAR_NONE,ZBAR_CFG_ENABLE, 1);
Image imageZbar(w, h, "Y800", (uchar*)imGray.data, w * h);//uchar
// scan the image for barcodes
int n= scanner.scan(imageZbar);
zbar::Image::SymbolIteratorsymbol = imageZbar.symbol_begin();
if(imageZbar.symbol_begin()==imageZbar.symbol_end())
cout<<"decode failed!\n"<<endl;
for(;symbol != imageZbar.symbol_end();++symbol){
cout<<"type:"<<endl<
cout<<"data:"<<endl<
imageZbar.set_data(NULL,0);
474*474
Zxing: 运行20次时间分别为:279,300,274,282
Zbar:运行20次时间分别为:1962,1929,1922,1954
Zxing: 运行20次时间分别为:452,465,441,453
Zbar:运行20次时间分别为:4563,4574,4473,4452
500*500
Zxing: 运行20次时间分别为:269,228,262,252
Zbar:运行20次时间分别为:1444,1441,1434,1449
455*455
Zxing: 运行20次时间分别为:241,217,250,239
Zbar:运行20次时间分别为:1265,1264,1244,1235
Zxing可识别出
Zbar识别不出
Zxing容易实现,并且可在windows下VS里直接调试测试。Zbar实现起来要复杂一点
Zxing在V100上识别速度快,识别率高