ZBar简介及安装配置流程 | 2021SC@SDUSC
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相关推荐
- oracle rac war配置,Oracle RAC安装配置流程
系统部分 1.建立用户 2.设定IP 3.每个节点的IP解析 4.SSH的配置 为用户等效性配置SSH(在所有节点上执行) 在安装Oracle RAC 10g期间,OUI需要把文件复制到集群中的其他主 ...
- 【①MySQL】浅谈数据库系统:MySQL的简介与安装配置
前言 欢迎来到小K的MySQL专栏,本节将为大家带来MySQL的简介与安装配置的详细讲解~ 目录 前言 一.数据库系统概述 数据(Data) 数据库(Database) 数据库管理系统(Databas ...
- 【赵强老师】Redis简介和安装配置
先看视频. [赵强老师]Redis简介和安装配置 什么是Redis? Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串 ...
- ZBar项目简介及安装配置
2021SC@SDUSC 目录 一.ZBar介绍 二.ZBar的安装及配置(VS2019 + Zbar + OpenCV3.4.3) 三.组内分工 一.ZBar介绍 ZBar是一个开源软件套件,用于从 ...
- ZBar源码分析——image.c | 2021SC@SDUSC
2021SC@SDUSC 一.Image 模块 ZBar的工作流程在以往的博客中做过一些介绍,在前几次的博客分析中也对video input部分和image scanner部分的一些代码进行了分析.在 ...
- ZBar源码分析——video.c | 2021SC@SDUSC
2021SC@SDUSC 目录 一.Video模块 二.代码分析 三.总结 一.Video模块 我们知道,扫描时提供给ZBar的不都是静态的图片,也有可能是动态的视频.例如我们日常生活中调用的微信扫码 ...
- ZooKeeper基础知识笔记(含3节点伪分布式安装配置流程)
本笔记涉及代码:https://github.com/hackeryang/Hadoop-Exercises/tree/master/src/main/java/ZooKeeper 一.ZooKeep ...
- Git版本SVN工具简介与安装配置及使用
文章目录 SVN介绍 一.使用原理 二.安装配置SVN 1.安装Git 2.下载SVN 总结 SVN介绍 SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采 ...
- django 基础安装配置流程
1.django各个版本的兼容关系: 图片来源:Django 版本和 Python 版本的对照关系_化雨随风的博客-CSDN博客_django和python版本对应 我选择的是django3.2.9版 ...
最新文章
- mac curl命令下载文件
- python基础学习笔记第一天
- mods文件夹怎么创建_TCL电视怎么安装蜜蜂视频通用教程
- python常见的数值运算符_第18 p,Python中各种常用的运算符,特别是增量运算符...
- 【ABAP系列】SAP ABAP 从FTP服务器读取文件到本地
- 使用 jQuery 和 KnockoutJS 开发在线股票走势图应用
- Eclipse快速导入继承类的方法
- (12)机器学习_特征选择
- 如何搭建私人电子图书馆
- Go游戏框架初探《一》
- Matlab自编函数实现Sobel边缘检测
- VMware虚拟机安装win10卡顿优化
- N2O游戏大师 V2.36.75.803 官方安装版
- nginx安全漏洞(CVE-2021-23017)修复
- ERROR: Cannot uninstall ‘wrapt‘. It is a distutils installed project and thus we cannot accurately d
- [转载]内存管理与TLB
- linux php zlib,Linux查询zlib版本
- netty+kotlin实现双人联机坦克大战
- 既约分数 python一练
- 出现 DB2 SQL Error: SQLCODE = -798, SQLSTATE = 428C9 错误的原因及解决方法