内容简介:ZBar是一个开源 C 条形码阅读库,具有C ++,Python,Perl和Ruby 接口。它也作为命令行应用程序和iPhone应用程序在Linux和Microsoft Windows上实现。具有如下特点:首先先到zbar官网下载安装包,
ZBar是一个开源 C 条形码阅读库,具有C ++,Python,Perl和 Ruby 接口。它也作为命令行应用程序和iPhone应用程序在 Linux 和Microsoft Windows上实现。
具有如下特点:
- 图像扫描
- 实时扫描视频流
- C ++,Python,Perl和Ruby的api接口
- Qt,GTK +和PyGTK GUI的api接口
- 对EAN-13,UPC-A,UPC-E,EAN-8,Code 128,Code 39,Interleaved 2 of 5和QR码 符号的识别
安装
下载
首先先到zbar官网下载安装包, 下载链接
安装
下载后,点击安装程序,这是一个自解压程序,类似opencv的安装程序,安装到自己所需要的目录就可以。
安装步骤除了两个步骤,其它都按照默认点就好。一个是选择你自己需要安装的路径,默认的安装路径C盘
另一个步骤则是到这里,选择头文件(Headers)和库文件目录(Libraries)的创建,用以接下来的配置。
配置
配置过程与opencv的配置类似,步骤是一样的。
这是自解压安装的文件夹,其中bin、include、lib目录是配置需要用到的。
- 环境变量的配置, bin目录添加到系统的path
- 打开vs,新建空项目,添加main.cpp文件。在属性管理器(选x86,亲测不支持x64),右键新建属性表。
- 编辑新建的属性表。 vc++包含目录填include文件夹路径。库目录填lib文件夹路径。链接器->输入->附加依赖项。填写libzbar-0.lib
测试
安装文件夹里面有官方示例代码如下。
#include<iostream> #include<Magick++.h> #include<zbar.h> #defineSTR(s) #s using namespace std; using namespace zbar; int main(int argc, char **argv) { if(argc < 2) return(1); #ifdefMAGICK_HOME // http://www.imagemagick.org/Magick++/ // under Windows it is necessary to initialize the ImageMagick // library prior to using the Magick++ library Magick::InitializeMagick(MAGICK_HOME); #endif // create a reader ImageScanner scanner; // configure the reader scanner.set_config(ZBAR_NONE, ZBAR_CFG_ENABLE, 1); // obtain image data Magick::Imagemagick(argv[1]); // read an image file int width = magick.columns(); // extract dimensions int height = magick.rows(); Magick::Blob blob; // extract the raw data magick.modifyImage(); magick.write(&blob, "GRAY", 8); const void *raw = blob.data(); // wrap image data Imageimage(width, height,"Y800", raw, width * height); // scan the image for barcodes int n = scanner.scan(image); // extract results for(Image::SymbolIterator symbol = image.symbol_begin(); symbol != image.symbol_end(); ++symbol) { // do something useful with results cout << "decoded " << symbol->get_type_name() << " symbol \"" << symbol->get_data() << '"' << endl; } // clean up image.set_data(NULL, 0); return(0); }
但是示例代码中使用了imageMagick++这个第三方库。没接触使用过,这里就稍加修改,使用opencv代替imageMagick++读入图片的功能。
#include<opencv2/opencv.hpp> #include<iostream> #include<zbar.h> using namespace std; using namespace zbar; int main(int argc, char **argv) { // create a reader ImageScanner scanner; // configure the reader scanner.set_config(ZBAR_NONE, ZBAR_CFG_ENABLE, 1); // obtain image data cv::Mat image = cv::imread("wechat.jpg"); // read an image file if (image.empty()) return -1; int width = image.rows; // extract dimensions int height = image.cols; cv::Mat img_gray; cv::cvtColor(image, img_gray, cv::COLOR_BGR2GRAY); uchar *raw = (uchar*)img_gray.data; // wrap image data Imageimage_zbar(width, height,"Y800", raw, width * height); // scan the image for barcodes int n = scanner.scan(image_zbar); if (image_zbar.symbol_begin() == image_zbar.symbol_end()) { cout << "Failed to scan, please check the image!" << endl; } // extract results for (Image::SymbolIterator symbol = image_zbar.symbol_begin(); symbol != image_zbar.symbol_end(); ++symbol) { // do something useful with results cout << "decoded " << symbol->get_type_name() << " symbol \"" << symbol->get_data() << '"' << endl; } cv::imshow("barcode", image); cv::waitKey(0); // clean up image_zbar.set_data(NULL, 0); return(0); }
以上所述就是小编给大家介绍的《zbar条形码识别库vs配置》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- iOS 扫描二维码/条形码
- iOS 生成二维码/条形码
- 小程序中生成二维码和条形码
- Seppiko Chart 1.5 已经发布,Java 条形码库
- 用OpenCV和Python识别二维码和条形码
- 条形码处理类库 ZXing 3.3.3 发布,支持 Java 9
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
操作系统概念(第六版)
(美)西尔伯斯查兹 / 郑扣根 / 高等教育出版社 / 2005-11 / 55.00元
《操作系统概念》(第6版翻译版)是讨论了操作系统中的基本概念和算法,并对大量实例(如Linux系统)进行了研究。全书内容共分七部分。第一部分概要解释了操作系统是什么、做什么、是怎样设计与构造的,也解释了操作系统概念是如何发展起来的,操作系统的公共特性是什么。第二部分进程管理描述了作为现代操作系统核心的进程以及并发的概念。第三部分存储管理描述了存储管理的经典结构与算法以及不同的存储管理方案。第四部分......一起来看看 《操作系统概念(第六版)》 这本书的介绍吧!