Zbar 安装与使用

版本

  1. ubuntu16.04
  2. zbar0.1.0

编译安装

export CFLAGS=""
./configure --without-gtk --without-qt --without-imagemagick --without-python
make -j8
sudo make install

cmake添加信息

set(ZBAR_LIBS /usr/local/lib)
set(ZBAR_HEADER /usr/local/include/zbar/ /usr/local/include/)

部分使用说明

参考 api.

zbar::ImageScanner scanner;
// configure the reader
//scanner.set_config(zbar::ZBAR_NONE, zbar::ZBAR_CFG_ENABLE, 1);
scanner->set_config(zbar::ZBAR_NONE, zbar::ZBAR_CFG_ENABLE, 0);//disable all first
scanner->set_config(zbar::ZBAR_QRCODE, zbar::ZBAR_CFG_ENABLE, 1);//open qr only
cv::Mat imageGray;
cv::cvtColor(frame->rgb,imageGray,CV_RGB2GRAY);
if(!imageGray.data)
{
    std::cout << "read picture error!\n" << std::endl;
    return false;
}
int width = imageGray.cols;
int height = imageGray.rows;
auto *raw = (uchar *)imageGray.data;
zbar::Image imageZbar(width, height, "Y800", raw, width * height);
// scan the image for barcodes
scanner.scan(imageZbar);
zbar::Image::SymbolIterator symbol = imageZbar.symbol_begin();
        
for(;symbol != imageZbar.symbol_end();++symbol)
{
    //code type
    std::cout<<"type:"<<std::endl<<symbol->get_type_name()<<std::endl<<std::endl;
    //decode string
    std::cout<<"data:"<<std::endl<<symbol->get_data()<<std::endl<<std::endl;
    for(int i = 0;i< symbol->get_location_size();i++){//qr 4 corner point
        std::cout<<"location x["<<i<<"] = "<<std::endl<<symbol->get_location_x(i)<<std::endl<<std::endl;
        std::cout<<"location y["<<i<<"] = "<<std::endl<<symbol->get_location_y(i)<<std::endl<<std::endl;
    }
    /*
     * ---------------------------------------x
     * |                 p1  -  p4
     * |                  |     |
     * |                 p2  -  p3
     * y
     * */
}
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值