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,这个例子的实现是查找到输入图片中的二维码,并在控制台窗口和图片窗口中分别输出二维码的内容。

注意图片的位置和名称

#include "zbar.h"
#include "cv.h"
#include "highgui.h"
#include <iostream>        using namespace std;
using namespace zbar;  //添加zbar名称空间
using namespace cv;        int main(int argc,char*argv[])
{        ImageScanner scanner;        scanner.set_config(ZBAR_NONE, ZBAR_CFG_ENABLE, 1);      Mat image = imread("K1.jpg");    if(!image.data)  {  cout<<"请确认图片"<<endl;  system("pause");  return 0;  }  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);          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",image);          waitKey();      imageZbar.set_data(NULL,0);    return 0;
}

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

换用二维码图片:

如果编译提示找不到

"cv.h"
"highgui.h"

两个头文件,请配置opencv的引用,具体方法可参看前面博文。

如果编译过程中提示错误   “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_WARNINGS

转载于:https://www.cnblogs.com/HappyEDay/p/6963188.html

二维码解码器Zbar+VS2010开发环境配置(使用opencv库)相关推荐

  1. 二维码解码器Zbar+VS2010开发环境配置

    二维码解码器Zbar+VS2010开发环境配置 发现ImageMagick只是用来打开图片,转换成统一的灰度矩阵数据.所以这次我尝试用OpenCV来实现ImageMagick的功能. 1.删除工程属性 ...

  2. 二维码解码器Zbar+VS2012开发环境配置

    Zbar条码解码器是一个开源的二维码(包括条形码)解码器,可以识别来至于视频流,图像文件.手持扫码器和视频设备(如摄像头)等二维码识别,支持EAN-13/UPC-A, UPC-E, EAN-8, Co ...

  3. 二维码解码器Zbar 的配置和基本使用

    Zbar解码器是一个开源的二维码(包括条形码)解码器,可以识别来至于视频流,图像文件.手持扫码器和视频设备(如摄像头)等二维码识别,支持EAN-13/UPC-A, UPC-E, EAN-8, Code ...

  4. vue 二维码解码器

    本篇是二维码解码器, 生成二维码教程请看另一篇 https://blog.csdn.net/qq_37816525/article/details/97928960 首先安装 qrcode-decod ...

  5. vue二维码解码器(增加上传二维码之后弹窗预览)

    对之前的二维码解码器做的功能扩展, 增加上传成功时弹框显示二维码图片预览,弹框使用vant ui 实现 vanr ui 文档地址 https://youzan.github.io/vant/#/zh- ...

  6. PHP、JavaScript 二维码解码器, 识别二维码

    Javascript 二维码解码器 代码下载链接:https://download.csdn.net/download/supramolecular/15901268 <!DOCTYPE htm ...

  7. iOS 扫描二维码自动打开灯 检测环境光线强度

    扫描二维码自动打开灯 检测环境光线强度,做的不太好,打开灯了没有关闭,后期优化可以打开关闭的代码,并且加一个定时器时间间隔(例如10秒左右)来控制是否改变灯的状态,否则灯会随着光线闪来闪去的.最简单 ...

  8. 安装OpenCV +VS2010 开发环境配置

    目录(?)[-] 2014年4月28更新OpenCV 249的配置 2014年9月12更新OpenCV 30的配置 因为读研期间的研究方向是图像处理所以浅墨这段时间闭门研究了很多OpenCV和图像处理 ...

  9. 沁恒CH32V003(二): Ubuntu20.04 MRS和Makefile开发环境配置

    目录 沁恒CH32V003(一): CH32V003F4P6开发板上手报告和Win10环境配置 沁恒CH32V003(二): Ubuntu20.04 MRS和Makefile开发环境配置 硬件准备 沁 ...

最新文章

  1. Kotlin学习 PART 2:kotlin基础
  2. C++面试八股文快问快答の基础篇
  3. spring 之 lookup-method replaced-method II
  4. SAP CRM Division customizing
  5. SSD( Single Shot MultiBox Detector)关键源码解析
  6. WordPress数据表wp-options数据字段存JSON数据
  7. SpringBoot项目集成Mybatis Plus(二)代码生成器
  8. Android动态布局,并动态为TextView控件设置drawableLeft、drawableRight等属性加入图标...
  9. COLOR_CODE
  10. 华为主题锁屏壁纸换不掉_华为手机总出现一些不明照片咋回事,原来你没关闭这个默认设置...
  11. 递归函数定义、递归应用案例-科赫雪花/雪花晶片/汉诺塔
  12. layui富文本编辑器,使用第三方插件Kz.layedit上传文件时自定义文件域字段名和请求参数
  13. (图像加密)常用图像置乱算法matlab实现(二)
  14. 网络与IO知识扫盲(一):Linux虚拟文件系统,文件描述符
  15. [LiteratureReview]A Collaborative Visual SLAM Framework for Service Robots
  16. 互联网巨头常用词汇大全 每一个词都在改变世界
  17. eclipse 使用 firebase analysis sdk
  18. umi build打包之后部署报错
  19. TensorFlow : Mac Python3 TensorFlow binary was not compiled to use: AVX2 FMA
  20. 红外寻迹小车基于K128单片机的红外对管飞思卡尔智能车(5个对管)程序部分

热门文章

  1. JRTPLIB使用实例
  2. 入门板绘又应该注意什么呢? 板绘初学者怎么练线稿
  3. Jumpserver堡垒机部署(完整过程)
  4. “手撕“ BootStrap 方法
  5. Verilog 语法入门知识
  6. 软件质量之道:PCLint之中的一个
  7. linux中|管道符的作用
  8. MySQL的索引原理,索引的类型有哪些,如何创建合理的索引,索引如何优化。
  9. 海康摄像头opencv实时回调
  10. 【物联网专题】2.2_设备管理平台_什么是物模型?