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. 使用express搭建第一个Web应用【Node.js初学】
  2. Windows应用程序类型和相应的入口点函数
  3. 使用OneHotEncoderEstimator操作Affairs
  4. 黑盒之嵌入式操作系统鲁棒性研究
  5. Exynos4412 Uboot 移植(四)—— Uboot引导内核过程分析
  6. 一个简单JavaAgent的实现
  7. linux php生产环境搭建,linux php 环境搭建
  8. NAR:脑疾病研究的“金牌助手”:BrainBase
  9. c语言中文网pdf免费下载,C语言中文网VIP教程11.9.pdf
  10. STK之Commu模块之仿真同步卫星与地面站通信
  11. 机械制图国家标准的绘图模板_JS制图:映射
  12. 20120912新工作感想
  13. 如何使用命令查看计算机sid,Sid 命令
  14. ​六号美术馆 基于以太坊区块链上的区块链游戏
  15. 北邮计算机专业的培养方案,现代邮政学院2016级专业培养方案-北京邮电大学.PDF...
  16. 人机工程学座椅设计_办公座椅设计中人体工程学分析
  17. 使用 KubeSphere 轻松实现微服务灰度发布与熔断
  18. mysql服务在系统盘_重装系统后恢复MySQL服务
  19. 福利篇:Java精品学习编程视频免费领取
  20. Centos修改IP

热门文章

  1. python播放声音——winsound模块
  2. Gerber 文件的生成
  3. EasyExcel合并列(横向合并)
  4. shm php,php实现共享内存进程通信函数(_shm)
  5. opencv_traincascade.exe用到的参数及解释
  6. 一个村MM让所有人晕三次的经历
  7. [转]看完吓一跳,FireFox和IE漏洞对比报告
  8. C++ sort函数出现段错误
  9. Adobe 解决了损坏 MacBook Pro 扬声器的 bug
  10. AddView和layoutParams总结