ZBar 库的配置(Windows + linux )

本文详细介绍了ZBar二维码识别软件在Windows系统上的安装配置过程,包括环境变量设置、64位系统下的额外配置步骤及开发环境搭建示例。同时提供了简单的测试代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

windows

  1. Zbar 执行程序官网下载地址,点击左边即可。
  2. 安装: 按照普通的程序点击下一步即可,记录好安装的位置
  3. 配置环境变量。 下面是我配置的位置。直接按照默认安装的。
    在这里插入图片描述
  4. 尝试在左下角最近安装程序点击zbarcam 程序,这里就可以用笔记本测试扫码并识别。

在这里插入图片描述
这里就将二维码放入笔记本的摄像头就可以进行识别了,人丑手动打码~~
在这里插入图片描述
5. 高能预警, 现在的电脑基本都是64位的,但是在官网下载的程序安装后只能够32位的电脑去二次开发,所以现在需要做下面的步骤。
需要从 这个网址上下载 https://github.com/dani4/ZBarWin64 下载压缩包,并解压。 如果下载的网速慢,可以参考我后面的给的安装包。 全套。
(1)将 ZBarWin64-master\lib 文件夹下的 libzbar64-0.lib 文件复制到ZBar安装路径下的 lib 文件夹中,
(2)将 ZBarWin64-master\lib 文件夹下的 libzbar64-0.dll 文件复制到ZBar安装路径下的 bin 文件夹中,
(3)将 ZBarWin64-master\zbar\libiconv\dll_x64 文件夹下的 libiconv.dll 文件复制到ZBar安装路径下的 bin 文件夹中。

  1. 程序进行测试, 我的开发环境是:
zbar 0.1
opencv 4.5 (安装的配置在我的上一篇blog)
qt5.9

注意 下面的pro文件的zbar 环境的路径,因为有空格,所以必须加上 $$quote

pro文件
INCLUDEPATH +=  D:\02C++\01QRcode\opencv\build\include                  \
                D:\02C++\01QRcode\opencv\build\include\opencv2          \
                $$quote(C:\Program Files (x86)\ZBar\include)            \

LIBS += D:\02C++\01QRcode\opencv\build\x64\vc14\lib\opencv_world450.lib
LIBS += D:\02C++\01QRcode\opencv\build\x64\vc14\lib\opencv_world450d.lib
LIBS += $$quote(C:\Program Files (x86)\ZBar\lib\libzbar64-0.lib)


void MainWindow::test()
{
    QString path = "xxx\\xxxx\\xx.png";
    Mat image = imread(path.toStdString());
    if(!image.data)
    {
        QMessageBox::information(this, tr("打开图像失败"),tr("打开图像失败!"));
        return;
    }

    QImage img = Mat2QImage(image);
  
    qDebug() << "ZBar Mat pic start decode.====" ;
    qDebug() << "img format is == " << img.format() ;   // Format_RGB32=4, Format_ARGB32=5
    Mat imageGray;
    cvtColor(image, imageGray, CV_RGB2GRAY);
    int width = imageGray.cols;
    int height = imageGray.rows;
    uchar* raw = (uchar*)imageGray.data;
    //Image imageZbar(width, height, "Y800", raw, width*height);
    Image imageZbar(width, height, "Y800", raw, width*height);
    scanner.scan(imageZbar);
    Image::SymbolIterator symbol = imageZbar.symbol_begin();
    if(imageZbar.symbol_begin() == imageZbar.symbol_end())
    {
        qDebug() << "查询条码失败, 请检查图片!" ;
    }
    for(; symbol != imageZbar.symbol_end() ; ++symbol)
    {
        //cout << "ZBar decode type = " << symbol->get_type_name() << endl;;
        //cout << "ZBar decode content = " << symbol->get_data() << endl;
        qDebug() << "type : " << endl <<  QString::fromStdString(symbol->get_type_name()) << endl << endl;
        qDebug() << "QRCode :" << endl << QString::fromStdString(symbol->get_data()) << endl << endl;
    }
    //imshow("Source QR", image);
    //waitKey(0);
    imageZbar.set_data(NULL, 0); /// 清楚缓存
}

Linux(ubuntu)

linux 中相比windows 是比较简单的。看下面的步骤。

到这里就已经结束了!!!

上面所有资料的打包,给大家在这个文件夹下。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值