因为要写一个机器人识别二维码的程序,想用Zbar+opencv,我的电脑是win10,用的vs是2015,下载的都是最新的,结果在网上找了一堆教程各种报错,后来自己搞了一天时间终于成功了,把经验分享出来~
如果有转载的话告诉我一下哟,因为这是我第一次写嘿嘿还有点激动
Win10x64+Zbar_0.10+VS2015+Opencv3.0.0
1. Zbar安装包下载
点击下载:http://zbar.sourceforge.net/download.html(Zbar官网下载链接),提供了Linux、Windows等版本的下载,目前最新版本是zbar-0.10。
点击链接首先进去看到的下图“ZBar 0.10 source tarball”是示例的代码,下载后是一个压缩包
鼠标往下拖找到“ZBar 0.10Windows installer”才是安装包,点击下载,建议下载路径放在D盘的D:\Program Files
2. Zbar安装
找到刚才的下载路径后双击 ,开始安装Zbar,如下图:
点击next,进入下图后勾选“DevelopmentHeaders and Libraries”:
点击next后进入下图选择安装路径:
点击install,等待安装完成之后在对应目录下出现下列文件夹,代表安装成功了
3.下载和安装opencv3.0.0
在OpenCV官网的下载页面:http://opencv.org/downloads.html 找到对应OpenCV for Windows版本下载。目前(2016/07/02)官网的最新版本是2015/12/21发布的Version 3.1.0,最新发布是2016/05/19日的Version 2.4.13。Version 3.1.0只有64位的开发包,还没(不知道未来会不会)支持32位的编译环境,这里使用Version3.0.0。进入下图界面后鼠标下拉找一下3.0.0版本,点击OpenCv for Windows,选择下载路径,我选的还是Zbar的下载路径。
下载完成之后双击“opencv-2.4.13.exe”,弹出安装(解压)对话框:
选择安装路径时使用的还是“D:\ProgramFilesD”,点击“Extract”后开始解压;
值得注意的一点是不需要在安装目录里额外建“opencv”的文件夹,OpenCV安装包解压出来的根目录就是“opencv”。
解压完之后会看到在刚刚的路径里多出了一个名为opencv的文件夹,代表安装成功::
4.本机环境变量和路径配置
点击开始菜单,右击计算机->属性->高级系统设置->高级->环境变量,
打开环境变量设置对话框,在系统变量里找到“Path”,点击“编辑”,如下图
加入自己的OpenCV目录和Zbar目录,我的是“D:\ProgramFileD\opencv\buile\x86\vc12\bin”
“D:\ProgramFileD\ZBar\bin”,如下图:
系统变量配置完毕,点击确定就好啦。
然后:重新启动电脑
注:变量值实际为bin文件夹的路径;D表示OpenCV安装于D盘;X64表示运行系统环境位64位系统,若安装于32位系统,应为X86;vc12表示编译环境为Microsoft Visual Studio 2013或者2015;变量添加完成后最好进行重启,这样才可以生效。
另:vc8 = Visual Studio 2005,vc9 = Visual Studio 2008,vc10 = VisualStudio 2010,vc11 = Visual Studio 2012,vc12 = Visual Studio 2013和2015
5. VS2015工程项目属性配置
首先打开VS2015
文件->新建->项目->Visual C++新建Win32控制台项目
点击下一步,再点击下一步,勾选空项目,然后点击完成
现在进行Zbar和Opencv目录的配置
先在源文件下建立一个.cpp源文件 命名为test.cpp,
然后点击视图,在视图下找到其他窗口,在其他窗口下找到属性管理器,点击打开
.然后便会有一个属性管理器的窗口了,接下来点开工程文件test,在Debug|Win32目录上右键单击选择“添加新项目属性表”,新建属性表,并命名为“Zbar_Debug_Setting.props“,如下图
点击“添加”,完成对项目属性表的添加。
接下来完成Zbar的VC++目录配置
双击刚才添加的“Zbar_Debug_Setting.props“属性表,选择通用属性->VC++目录
在VC++目录->包含目录里添加1个目录: D:\ProgramFilesD\ZBar\include
选择VC++目录->库目录:
在库目录里添加1个目录:D:\ProgramFilesD\ZBar\lib
打开通用属性->链接器->输入:
在附加依赖项里添加1个依赖项:libzbar-0.lib
点击确定,完成对IDE环境的配置
接下来完成Opencv的VC++目录配置
依然是找到属性管理器的窗口了,点击工程文件,
点击项目->属性->配置属性->VC++ 目录->包含目录,
添加D:\ ProgramFilesD\opencv\build\include
D:\ ProgramFilesD\opencv\build\include\opencv
D:\ ProgramFilesD\opencv\build\include\opencv2
在库目录添加:
D:\ ProgramFilesD\opencv\build\x86\vc12\lib
D:\ ProgramFilesD\opencv\build\x86\vc12\staticlib
在链接器--输入--附加依赖项添加:
opencv_ts300.lib
opencv_world300.lib
完成后一定要选择“确定”
完成上述步骤,环境基本就可以使用了。
测试Win10+Zbar+Opencv+VS2015的组合是否成功:
在test.cpp里添加:
#include
#include
#define STR(s) #s
#include
using namespace std;
using namespace zbar;
using namespace cv;
int main (int argc, char **argv)
{
ImageScanner scanner;
scanner.set_config(ZBAR_NONE, ZBAR_CFG_ENABLE, 1);
cv::Mat img = cv::imread("barcode.png");
cv::Mat imgGray ;
imgGray.create(img.size(),CV_8UC1);
cvtColor(img,imgGray,CV_BGR2GRAY);
int width = imgGray.cols; //extract dimensions
int height = imgGray.rows;
Image image(width, height, "Y800", imgGray.data, width *height);
int n = scanner.scan(image);
for(Image::SymbolIterator symbol = image.symbol_begin();
symbol != image.symbol_end();
++symbol) {
cout << "decoded " << symbol->get_type_name()
<< " symbol \"" << symbol->get_data()<< '"' << endl;
}
image.set_data(NULL, 0);
return(0);
}
图片要自己找了png格式的之后放在工程文件里面。
如果报错提示:计算机中丢失opencv_world300.dll,
把D:\Program Files\opencv\build\x86\vc12\bin下的3个.dll文件复制到C:\Windows\SysWOW64下就好