2021SC@SDUSC

目录

Zbar简介

配置流程

环境

下载ZBer库文件

配置环境变量

VS配置

测试代码

总结


Zbar简介

zbar算法是现在网上开源的条形码,二维码检测算法,算法可识别大部分种类的一维码(条形码),比如I25,CODE39,CODE128,不过大家更关心的应该是现在很火的QR码的解码效率,随着现在生活中QR码的普及,扫码支付等行为越来越多的被人们接受,关于QR码是什么,QR码的解码流程是什么样的。本篇文章就互联网上的一个开源解码算法zbar进行简单剖析。

配置流程

环境

我的环境是VS2017+opencv4.10,

下载ZBer库文件

1.可以去官网下载,ZBar库在官网上只有32位的,而我们计算机的需要的是64位的,这就需要我们自己改一些文件配置。
2.一个博主直接帮我们配置好了

链接:https://pan.baidu.com/s/1EAgiYF5S65QpWAnFWS5CrQ 提取码:jesa

配置环境变量

1.在搜索中输入“高级系统设置”

点击“环境变量”

选择变量path,点击编辑

输入路径

VS配置

在VS2017中新建一个项目,在属性管理器中新建一个属性列表

做如下配置

编辑,输入你所对应的路径,如

测试代码

#include <zbar.h>
#include <opencv2\opencv.hpp>
#include <iostream>
#include <opencv2\imgproc\types_c.h>
#pragma comment(lib, "C:\\Users\\administered\\source\\repos\\ConsoleApplication11\\Debug\\libzbar64-0.lib")int main(int argc, char*argv[])
{zbar::ImageScanner scanner;scanner.set_config(zbar::ZBAR_NONE, zbar::ZBAR_CFG_ENABLE, 1);cv::VideoCapture capture;capture.open(0);  //打开摄像头cv::Mat image;cv::Mat imageGray;std::vector<cv::Point2f> obj_location;bool flag = true;if (!capture.isOpened()){std::cout << "cannot open cam!" << std::endl;}else{while (flag){capture >> image;cv::cvtColor(image, imageGray, CV_RGB2GRAY);int width = imageGray.cols;int height = imageGray.rows;uchar *raw = (uchar *)imageGray.data;zbar::Image imageZbar(width, height, "Y800", raw, width * height);scanner.scan(imageZbar);  //扫描条码zbar::Image::SymbolIterator symbol = imageZbar.symbol_begin();if (imageZbar.symbol_begin() != imageZbar.symbol_end())  //如果扫描到二维码{flag = false;//解析二维码for (int i = 0; i < symbol->get_location_size(); i++){obj_location.push_back(cv::Point(symbol->get_location_x(i), symbol->get_location_y(i)));}for (unsigned int i = 0; i < obj_location.size(); i++){cv::line(image, obj_location[i], obj_location[(i + 1) % obj_location.size()], cv::Scalar(255, 0, 0), 3);//定位条码}for (; symbol != imageZbar.symbol_end(); ++symbol){std::cout << "Code Type: " << std::endl << symbol->get_type_name() << std::endl; //获取条码类型std::cout << "Decode Result: " << std::endl << symbol->get_data() << std::endl;  //解码}imageZbar.set_data(NULL, 0);}cv::imshow("Result", image);cv::waitKey(50);}cv::waitKey();}return 0;
}

注意选择debug、x64

运行截图

总结

ZBar项目涉及知识十分丰富且复杂,本次仅仅在Windows环境下对ZBar进行了安装、配置以及简单的测试和使用,后续小组将开展详细的代码分析工作。

ZBar简介及安装配置流程 | 2021SC@SDUSC相关推荐

  1. oracle rac war配置,Oracle RAC安装配置流程

    系统部分 1.建立用户 2.设定IP 3.每个节点的IP解析 4.SSH的配置 为用户等效性配置SSH(在所有节点上执行) 在安装Oracle RAC 10g期间,OUI需要把文件复制到集群中的其他主 ...

  2. 【①MySQL】浅谈数据库系统:MySQL的简介与安装配置

    前言 欢迎来到小K的MySQL专栏,本节将为大家带来MySQL的简介与安装配置的详细讲解~ 目录 前言 一.数据库系统概述 数据(Data) 数据库(Database) 数据库管理系统(Databas ...

  3. 【赵强老师】Redis简介和安装配置

    先看视频. [赵强老师]Redis简介和安装配置 什么是Redis? Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串 ...

  4. ZBar项目简介及安装配置

    2021SC@SDUSC 目录 一.ZBar介绍 二.ZBar的安装及配置(VS2019 + Zbar + OpenCV3.4.3) 三.组内分工 一.ZBar介绍 ZBar是一个开源软件套件,用于从 ...

  5. ZBar源码分析——image.c | 2021SC@SDUSC

    2021SC@SDUSC 一.Image 模块 ZBar的工作流程在以往的博客中做过一些介绍,在前几次的博客分析中也对video input部分和image scanner部分的一些代码进行了分析.在 ...

  6. ZBar源码分析——video.c | 2021SC@SDUSC

    2021SC@SDUSC 目录 一.Video模块 二.代码分析 三.总结 一.Video模块 我们知道,扫描时提供给ZBar的不都是静态的图片,也有可能是动态的视频.例如我们日常生活中调用的微信扫码 ...

  7. ZooKeeper基础知识笔记(含3节点伪分布式安装配置流程)

    本笔记涉及代码:https://github.com/hackeryang/Hadoop-Exercises/tree/master/src/main/java/ZooKeeper 一.ZooKeep ...

  8. Git版本SVN工具简介与安装配置及使用

    文章目录 SVN介绍 一.使用原理 二.安装配置SVN 1.安装Git 2.下载SVN 总结 SVN介绍 SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采 ...

  9. django 基础安装配置流程

    1.django各个版本的兼容关系: 图片来源:Django 版本和 Python 版本的对照关系_化雨随风的博客-CSDN博客_django和python版本对应 我选择的是django3.2.9版 ...

最新文章

  1. mac curl命令下载文件
  2. python基础学习笔记第一天
  3. mods文件夹怎么创建_TCL电视怎么安装蜜蜂视频通用教程
  4. python常见的数值运算符_第18 p,Python中各种常用的运算符,特别是增量运算符...
  5. 【ABAP系列】SAP ABAP 从FTP服务器读取文件到本地
  6. 使用 jQuery 和 KnockoutJS 开发在线股票走势图应用
  7. Eclipse快速导入继承类的方法
  8. (12)机器学习_特征选择
  9. 如何搭建私人电子图书馆
  10. Go游戏框架初探《一》
  11. Matlab自编函数实现Sobel边缘检测
  12. VMware虚拟机安装win10卡顿优化
  13. N2O游戏大师 V2.36.75.803 官方安装版
  14. nginx安全漏洞(CVE-2021-23017)修复
  15. ERROR: Cannot uninstall ‘wrapt‘. It is a distutils installed project and thus we cannot accurately d
  16. [转载]内存管理与TLB
  17. linux php zlib,Linux查询zlib版本
  18. netty+kotlin实现双人联机坦克大战
  19. 既约分数 python一练
  20. 出现 DB2 SQL Error: SQLCODE = -798, SQLSTATE = 428C9 错误的原因及解决方法

热门文章

  1. 后羿 04 ‖ 射神
  2. android 自定义 theme,Android 系统添加自定义主题属性
  3. Python书单推荐一波
  4. 下载速率(上行速率)和上传速率(下行速率)
  5. video(k_video)
  6. FFMPEG相关功能命令(转载)
  7. pythonocc 用BRepOffsetAPI_ThruSections建3D棱台
  8. 随机摇色子1000次,记录筛子出现数字的个数
  9. LTS分布式任务调度
  10. macbook通过usb共享网络给iphone上网