二维码解码器Zbar+VS2012开发环境配置
Zbar条码解码器是一个开源的二维码(包括条形码)解码器,可以识别来至于视频流,图像文件、手持扫码器和视频设备(如摄像头)等二维码识别,支持EAN-13/UPC-A, UPC-E, EAN-8, Code 128, Code 39, QR Code(二维码)等常用编码方式的条形码/二维码。

下边这个简单粗暴的图标就是Zbar:

Zbar的SDK支持包括C、C++、Python在内的多种语言,也提供了iOS和Androdi的SDK可供使用,用起来也非常方便,只需要在编译环境里添加相应的路径就行了,再加上图像处理包,如ImageMagick++或OpenCV的辅助读图,就可以编写准确高效的二维码识别程序了,下边就一步一步的介绍如何在vs2012中配置Zbar。

1. Zbar安装包下载

点击下载:Zbar官网下载链接,提供了Linux、Windows等版本的下载,目前最新版本是zbar-0.10。

2. Zbar安装

双击zbar-0.10-setup.exe,开始安装Zbar,其实就是对安装包的解压缩,如下图:

勾选“Development Headers and Libraries”:

选择安装路径:

安装完成之后在对应目录下出现下列文件夹,代表安装成功了:

3. VS2012工程项目属性配置

3.1 添加属性表

新建Win32控制台应用程序,工程名命名为ZbarTest,过程图就省略~

在工程ZbarTest工程的视图目录的下拉菜单中打开属性管理器:

在属性管理器的Debug|Win32目录上单击选择“添加新项目属性表”,新建属性表,并命名为“Zbar_Debug_Setting.props“,如下图所示:

点击添加,完成对项目属性表的添加。

3.2 VC++目录配置

双击刚才添加的“Zbar_Debug_Setting.props“属性表,选择通用属性->VC++目录:

在VC++目录->包含目录里添加1个目录: D:\ProgramFilesD\ZBar\include

选择VC++目录->库目录:

在库目录里添加1个目录: D:\ProgramFilesD\ZBar\lib

3.3 输入目录配置

打开通用属性->链接器->输入:

在附加依赖项里添加1个依赖项: libzbar-0.lib

点击确定,完成对IDE环境的配置。

4. 环境变量配置:

打开环境变量列表,这里跟在另一篇文章里opencv+VS2010里的配置环境变量是一样的 ,如不知道环境变量如何配置,可以点击这里查看详细步骤。

添加Zbar的动态库所在目录:D:\ProgramFilesD\ZBar\bin;  添加之后系统就不会找不到需要的dll文件了。

添加完之后务必记得注销电脑后生效。

OK!完成这4个步骤的动作,整个Zbar和VS2012的配置工作就全部完成了。

5. 环境测试

最后通过一个例程,来测试一下配置是否OK,这个例子的实现是查找到输入图片中的二维码,并在控制台窗口和图片窗口中分别输出二维码的内容。

注意把二维码图片放入程序所在路径下,运行效果如下:

换用二维码图片:

如果编译过程中提示错误   “error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.”

可以尝试以下解决方案:

项目 =》属性 =》c/c++  =》预处理器=》点击预处理器定义,编辑,加入_CRT_SECURE_NO_WARNING

我也配置成功了!

//学习OpenCV3 中级
//L5 课程代码 反向投影综合例子
#include "stdafx.h"
#include <opencv2/core/utility.hpp>
#include "opencv2/video/tracking.hpp"
#include "opencv2/imgproc.hpp"
#include "opencv2/videoio.hpp"
#include "opencv2/highgui.hpp"
#include "zbar.h"   
#include <iostream>
#include <ctype.h>
using namespace cv;
using namespace std;
using namespace zbar;
void main()
{
    ImageScanner scanner;        
    scanner.set_config(ZBAR_NONE, ZBAR_CFG_ENABLE, 1);      
    Mat src = imread("E:/sandbox/1.png",IMREAD_COLOR);
    Mat imageGray;        
    cvtColor(src,imageGray,CV_RGB2GRAY);        
    int width = imageGray.cols;        
    int height = imageGray.rows;        
    uchar *raw = (uchar *)imageGray.data;           
    Image imageZbar(width, height, "Y800", raw, width * height);          
    scanner.scan(imageZbar); //扫描条码      
    Image::SymbolIterator symbol = imageZbar.symbol_begin();    
    if(imageZbar.symbol_begin()==imageZbar.symbol_end())    
    {    
        cout<<"查询条码失败,请检查图片!"<<endl;    
    }    
    for(;symbol != imageZbar.symbol_end();++symbol)      
    {        
        cout<<"类型:"<<endl<<symbol->get_type_name()<<endl<<endl;      
        cout<<"条码:"<<endl<<symbol->get_data()<<endl<<endl;         
    }        
    imshow("Source Image",src);          
    waitKey();      
    imageZbar.set_data(NULL,0);   
}

附件列表

配置zbar识别二维码(转载)的更多相关文章

  1. php 识别二维码(转载)

    近段需要写一个通过PHP来识别二维码的功能,在网上查了很久才解决问题.以此来记录下来解决问题的方法. 最开始找的方法是一个叫 php-zbarcode 的扩展,自己照着网上的安装步骤安装了 Image ...

  2. 移动端禁止图片长按和vivo手机点击img标签放大图片,禁止长按识别二维码或保存图片【转载】

    移动端禁止图片长按和vivo手机点击img标签放大图片,禁止长按识别二维码或保存图片 img{ pointer-events: none; } 源文地址:https://www.cnblogs.com ...

  3. PHP识别二维码(php-zbarcode)

    PHP识别二维码(php-zbarcode) 标签: php二维码扩展 2015-11-06 17:12 609人阅读 评论(0) 收藏 举报  分类: PHP(1)  Linux 版权声明:本文为博 ...

  4. Pyqt+QRcode 生成 识别 二维码

    1.生成二维码 python生成二维码是件很简单的事,使用第三方库Python QRCode就可生成二维码,我用Pyqt给QRcode打个壳 一.python-qrcode介绍 python-qrco ...

  5. Python3+qrcode+zxing生成和识别二维码教程

    一.安装依赖库 pip install qrcode pillow image zxing pillow是python3中PIL的代替库,image是生成图版需要用到的库 安装image时报错“Cou ...

  6. PHP 生成、识别二维码及安装相关扩展/工具

    2018-02-20 00:30:26  更新:推荐新扩展(极力推荐) 这篇文章里用的两个二维码扩展都有些问题和麻烦:phpqrcode(生成二维码)的源码有点小 bug: 而 php-zbarcod ...

  7. 在iOS中使用ZBar扫描二维码

    最近在做的项目中需要用到二维码扫描功能,之前在Android中使用过ZXing识别二维码,ZXing也有对应的iOS版本,经过了解,ZBar也是一个常用的二维码识别软件,并分别提供了iOS和Andro ...

  8. PHP识别二维码功能,php-zbarcode 安装

    php-zbarcode是PHP识别二维码的扩展. 下面是安装方法,安装前要先安装ImageMagick.zbar. php-zbarcode 下载地址 安装ImageMagick: yum inst ...

  9. Qt+QZXing编写识别二维码的程序

    本人最近在用Qt编写程序,需要用编写二维码识别功能.在网上搜寻一番,找到了QZXing.配置过程中确实出了一大把汗,这里我写这篇文章记录配置方法,替后人省一把汗吧!我的开发环境:MSVC2010 + ...

随机推荐

  1. Django学习笔记 Django的工程目录

    mysite├── manage.py 管理项目:包括数据库建立.服务器运行.测试……└── mysite    ├── __init__.py     ├── settings.py 配置文件:应用 ...

  2. LLDB调试器

    你是否曾经苦恼于理解你的代码,而去尝试打印一个变量的值? NSLog(@"%@", whatIsInsideThisThing); 或者跳过一个函数调用来简化程序的行为? NSNu ...

  3. PHP-Yii框架下提交表单form防止csrf攻击

    解决办法: 在form标签下,写入一个隐藏的input控件 <form id="form_submit" action="http://v2admin.doneve ...

  4. hive 客户端执行select count(1) from t_sz01

    yarn-site.xml配置错误 yarn.nodemanager.aux-services 中的-原先配置为_ 导致错误......

  5. JS-缓冲运动:菜单栏型悬浮框

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  6. {Repeater控件} Repeater控件的用法流程及实例

    一.Repeater控件的用法流程及实例: 1.首先建立一个网站,新建一个网页index.aspx. 2.添加或者建立APP_Data数据文件,然后将用到的数据库文件放到APP_Data文件夹中. 3 ...

  7. javascript飞机大战-----005创建子弹对象2

    子弹销毁 /* 创建子弹:因为子弹不是只创建一个所以要用构造函数 注意一点:子弹发射的位置应该是英雄机的正中央的位置,所以需要传点东西进来 */ function Bullet(l,t){ this. ...

  8. Oracle数据类型number

    oracle数值类型只有number number(变长) 1.number可以存放整数,可以存放小数: 2.number(p,s) 说明: p表示有效位,s为小数位:范围p[1,38],s[-84, ...

  9. vue.js(一)

    之前看过一点vue.js但是知识点没做记录,现在也差不多不记得了,今天把以前看过的翻一遍,顺便提炼一下知识点 注意:下面的所有与vue相关的标签.指令都是写在id="app"的di ...

  10. Python开发【笔记】:接口

    接口 什么是接口 ? 接口只是定义了一些方法,而没有去实现,多用于程序设计时,只是设计需要有什么样的功能,但是并没有实现任何功能,这些功能需要被另一个类(B)继承后,由 类B去实现其中的某个功能或全部 ...