下载安装Zbar
第一步:下载zbar,下载地址: http://zbar.sourceforge.net/download.html
下载的文件名为zbar-0.10-setup.exe!官网的下载总是向蜗牛一样缓慢(革命尚未成功,同志仍需努力)。这里提供一个下载地址:http://u.163.com/nnnnnnZRw 提取码: Mjm4xI7s
第二步:双击zbar-0.10-setup.exe安装
注意勾选Development Headers and Libraries和更改安装路径
安装完成,点击Finish。在对应的安装目录下出现下列文件夹,即表示安装成功
安装成功后,在开始菜单也提供了两个小程序使用
Command Reference是一个命令行说明文档;ZBar Command Prompt是命令行程序,打开后是一个命令行,根据命令行的提示进行条码和二维码的检测;zbarcam打开后会开启一个窗口,并唤醒相机,利用笔记本自带的摄像头直接扫码!
第三步:按Windows32方式配置zbar的C++开发环境(与Opencv环境配置类似)
1.使用VS2015新建一个项目:win32控制台应用程序,命名为BaseOnZbar
2.在工程的视图目录其它窗口下打开属性管理器,在属性管理器的Debug|Win32目录上点击添加新项目属性表,命名为BaseOnZbarX86(名称可自定义)
3.双击刚才新建的BaseOnZbarX86属性表,开始IDE环境配置
4.配置系统环境
右键此电脑->属性->高级系统设置->环境变量->系统变量->编辑->新建
添加路径:D:\InstallPath\ZBar\bin
到这里,32位的安装就完成了;如果Windows是64位的,还需要后面的步骤
第四步:下载64位压缩包。下载地址:https://github.com/dani4/ZBarWin64
下载下来是一个名为ZBarWin64-master.zip的压缩包。如果github上下载太慢的话,这里也提供了另一个下载地址:http://u.163.com/nnnnnnECd 提取码: vZXAZojP
解压缩后的文件夹如下:
第五步:配置x64环境
将 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 文件夹;
在VS项目属性表中,打开 通用属性->链接器->输入->附加依赖项 再添加一条:libzbar64-0.lib;
配置完成!
第六步:使用zbar(添加opencv的环境,属性表)
在主函数中添加如下代码
// BaseOnZbar.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include
#include "zbar.h"
#include
int main(int argc, char*argv[])
{
zbar::ImageScanner scanner;
scanner.set_config(zbar::ZBAR_NONE, zbar::ZBAR_CFG_ENABLE, 1);
cv::Mat image = cv::imread(argv[1]);
cv::Mat imageGray;
cv::cvtColor(image, image, cv::COLOR_BGR2GRAY);
int width = image.cols;
int height = image.rows;
uchar *raw = (uchar *)image.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())
{
std::cout << "查询条码失败,请检查图片!" << std::endl;
}
for (; symbol != imageZbar.symbol_end(); ++symbol)
{
std::cout << "类型:" << symbol->get_type_name() << std::endl;
std::cout << "条码:" << symbol->get_data() << std::endl;
}
cv:imshow("Source Image", image);
cv::waitKey();
return 0;
}
生成解决方案,编译成功后会在工程的x64\Debug目录下生成BaseOnZbar.exe可执行文件,在终端上执行如下命令:
$ BaseOnZbar.exe test.png