资讯专栏INFORMATION COLUMN

ZBar项目简介及安装配置

wawor4827 / 1623人阅读

摘要:库使用了一种更接近魔杖和激光扫描仪使用的方法线性条形码设计为通过一个简单的光传感器在符号的明暗区域进行解码。利用这一点,实现对图像进行线性扫描,将每个像素视为单个光传感器的样本。

2021SC@SDUSC

目录

一、ZBar项目简介

1. ZBar是什么

2. ZBar的工作原理

3. ZBar的工作流程

二、ZBar的安装和配置(Windows操作系统    VS2019+opencv)


一、ZBar项目简介

1. ZBar是什么

      ZBar条形码阅读器是一个开源软件,适用于读取不同来源的条形码,如视频流、图像文件和原始强度传感器。它支持EAN-13/UPC-A, UPC-E, EAN-8, Code 128,Code 39, Codabar, Interleaved 2/5和二维码。包括在库是解码捕获的条形码图像和图像的基本应用程序,使用视频设备(如网络摄像头)作为条形码扫描仪。对于开发者,支持语言绑定包括C、C++、Python和Perl,以及用于Qt、GTK和PyGTK的GUI小部件。

        该项目旨在创建一个高性能、稳定、健壮的库组件,并提供支持基础设施,使其易于在各种应用程序中使用。

2. ZBar的工作原理

        条形码“图像扫描仪”的常见设计是将数字图像处理技术应用于包含条形码的图像:精确的细节各不相同,但这通常涉及几个过滤步骤,以清除噪声、锐化和增强对比度、边缘检测和形状分析,以确定符号位置和方向,最后从原始图像中提取数据。所有这些处理阶段都需要CPU周期和内存资源,并且通常对各种“过滤器参数”配置非常敏感,最终用户很难理解和设置这些配置。

        ZBar库使用了一种更接近“魔杖”和“激光”扫描仪使用的方法:线性(1D)条形码设计为通过一个简单的光传感器在符号的明暗区域进行解码。利用这一点,ZBar实现对图像进行线性扫描,将每个像素视为单个光传感器的样本。数据在飞行中被扫描、解码和组装。

ZBar借鉴了现代处理范式,进一步将这一思想抽象为一个分层流模型。处理分为独立的层,具有定义良好的接口,可以一起使用,也可以多带带插入任何其他系统。

3. ZBar的工作流程

二、ZBar的安装和配置(Windows操作系统    VS2019+opencv)

1.单击右侧属性管理器,右键debug|x64,添加新项目属性表,名字随意。

2.安装opencv和zbar

Releases - OpenCVhttps://opencv.org/releases/

opencv选择3.4.3​

ZBar bar code reader - Downloadhttp://zbar.sourceforge.net/download.html

ZBar选择windows版本

下载完成后运行.exe文件进行安装

3.ZBar是在win32环境下的,要用x64的,还需要一些库文件,github下载

GitHub - dani4/ZBarWin64: Clone of the zbar library. Created to compile as x64 library under VS2013Clone of the zbar library. Created to compile as x64 library under VS2013 - GitHub - dani4/ZBarWin64: Clone of the zbar library. Created to compile as x64 library under VS2013https://github.com/dani4/ZBarWin64

下载并解压,将 ZBarWin64-master/lib 文件夹下 libzbar64-0.lib 文件复制到ZBar安装路径下的 lib 文件夹;将 ZBarWin64-master/lib 文件夹下 libzbar64-0.dll 文件复制到ZBar安装路径下的 bin 文件夹;将ZBarWin64-master/zbar/libiconv/dll_x64文件夹下 libiconv.dll 复制到ZBar安装路径下的bin 文件夹。

4.回到刚刚新建的opencvPropertySheet属性表的属性页界面

第一个 VC++目录--包含目录,添加opencv的include路径和zbar的include路径;

第二个 VC++目录--库目录,添加opencv和zbar的lib路径;

第三个 链接器--输入-附加依赖项,添加opencv和zbar的依赖:opencv_world340d.lib、libzbar-0.lib、libzbar64-0.lib。

5.配置环境变量

新建opencv和zbar的bin路径

6.重启电脑,打开vs项目,测试如下代码

#include  // Gaussian Blur#include #include #include  // OpenCV window I/O#include #include #include #include #include using namespace cv;using namespace std;using namespace zbar;int main(){	ImageScanner scanner;	scanner.set_config(ZBAR_NONE, ZBAR_CFG_ENABLE, 1);	//调用系统摄像头	VideoCapture cap(0);	Mat mFrame;	while (1)	{		cap >> mFrame;		Mat image = mFrame;		imshow("camera", mFrame);		Mat imageGray;		cvtColor(image, imageGray, COLOR_BGR2GRAY);		int width = imageGray.cols;		int height = imageGray.rows;		uchar* raw = (uchar*)imageGray.data;		// 在Zbar中进行扫描时候,		//需要将OpenCV中的Mat类型转换为(uchar *)类型,raw中存放的是图像的地址;		//对应的图像需要转成Zbar中对应的图像zbar::Image		Image imageZbar(width, height, "Y800", raw, width * height);		//Y800=GREY 是GRAY灰度图像		scanner.scan(imageZbar);		Image::SymbolIterator symbol = imageZbar.symbol_begin();		for (; symbol != imageZbar.symbol_end(); ++symbol)		{			cout << "类型:" << endl << symbol->get_type_name() << endl << endl;			cout << "条码:" << endl << symbol->get_data() << endl << endl;		}		waitKey(5);		//waitKey()函数的功能是不断刷新图像,频率为delay,单位是ms	}	waitKey();	return 0;}

 这段代码,调用了zbar库和opencv库,输出为码的类型和扫码结果:

三、组内分工

本人将负责恢复码字后的规整图像的读取和解析部分的代码分析。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/121653.html

相关文章

  • android基于ZXing和ZBar的二维码扫描项目

    摘要:更多库项目,提供基于和易于使用,可扩展的条码扫描器的用法。安装添加下面的依赖关系到你的文件。简单的用法添加摄像头权限进文件请看看一个完整的工作示例项目。 更多: http://www.codefrom.com/p/Android Android库项目,提供基于ZXing和ZBar易于使用,可扩展的条码扫描器的用法。 showImg(http://codefrom.oss-c...

    Airmusic 评论0 收藏0
  • Centos 6.x 上安装php 的 zbarcode 扩展

    摘要:环境安装安装依赖安装拓展禁止和的支持安装安装自己的位置添加到中然后重启测试新建一个图像对象创建一个二维码识别器识别图像循环输出二维码信息图像的条码类型条码的数据参考资料 环境 Centos 6.xPHP 5.3.3 安装 1 安装ImageMagick依赖 yum install ImageMagick ImageMagick-devel 2 安装zbar拓展 wget -c http...

    supernavy 评论0 收藏0
  • Android应用跳转到微信和支付宝扫一扫

    摘要:新版的微信已经把微信功能的都禁掉了,意味着我们无法打开微信的扫一扫等功能,目前正常的只能先进入微信我测试的时候是微信版本已经是很新的版本了具体调起微信扫一扫代码如下,测试后确实是可以使用的具体调起支付宝扫一扫代码如下,测试后确实是可以使用的新版的微信已经把微信功能的schema都禁掉了,意味着我们无法打开微信的扫一扫等功能,目前正常的只能先进入微信(我测试的时候是微信版本7.0.3)已经是很...

    xietao3 评论0 收藏0
  • 大数据入门指南(GitHub开源项目

    摘要:项目地址前言大数据技术栈思维导图大数据常用软件安装指南一分布式文件存储系统分布式计算框架集群资源管理器单机伪集群环境搭建集群环境搭建常用命令的使用基于搭建高可用集群二简介及核心概念环境下的安装部署和命令行的基本使用常用操作分区表和分桶表视图 项目GitHub地址:https://github.com/heibaiying... 前 言 大数据技术栈思维导图 大数据常用软件安装指...

    guyan0319 评论0 收藏0
  • Elastic Search快速上手(1):简介安装配置

    摘要:通过协议,将数据存放到中,并且向发出搜索请求以及得到回应。安装安装需要安装及以上版本的,地址安装配置环境变量后,命令行查看。 前言 最近开始尝试学习Elastic Search,因此决定做一些简单的整理,以供后续参考,快速上手使用ES。 简介 ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。El...

    Luosunce 评论0 收藏0

发表评论

0条评论

wawor4827

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<