Win10操作系统下配置OpenCv以及Zbar-VS2012
博客专区 > yylea 的博客 > 博客详情
Win10操作系统下配置OpenCv以及Zbar-VS2012
yylea 发表于1年前
Win10操作系统下配置OpenCv以及Zbar-VS2012
  • 发表于 1年前
  • 阅读 504
  • 收藏 0
  • 点赞 0
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   


1.前期准备

系统环境:Win10

ZBar版本:zbar-0.10 

http://download.csdn.net/detail/chenjifeng1987/9598568

OPenCV版本:opencv-2.4.13

OpenCV官网的下载页面: http://opencv.org/downloads.html   

找到对应OpenCV for Windows版本下载。

Version 3.1.0只有64位的开发包,还没支持32位的编译环境,这里使用Version 2.4.13。

VS2012:官方旗舰版

http://download.microsoft.com/download/B/0/F/B0F589ED-F1B7-478C-849A-02C8395D0995/VS2012_ULT_chs.iso 

激活序列号,请输入:YKCW6-BPFPF-BT8C9-7DCTH-QXGWC

2.程序安装

2.1.VS2012安装

打开安装程序一路走就OK,注意的是安装时间比较长,大概要两三个小时。就算安装路径改成了其他盘符,C盘还是会占用大约6个G的容量。

2.2.ZBar安装

双击zbar-0.10-setup.exe,开始安装Zbar,其实就是对安装包的解压缩,如下图:

 

勾选“Development Headers and Libraries”:

 

选择安装路径:请记住自己的安装路径,之后的配置需要进入安装路径。我这里的路径是“G:\Program Files (x86)\ZBar\”

 

 

安装完成之后在对应目录下出现下列文件夹,代表安装成功了:

 

2.3.安装OpenCV

下载完成之后双击“opencv-2.4.13.exe”,弹出安装(解压)对话框:

 

选择安装路径,这里使用的是“G:\Program Files (x86)”,点击“Extract”后开始解压;

值得注意的一点是不需要在安装目录里额外建“opencv”的文件夹,OpenCV安装包解压出来的根目录就是“opencv”。

3.本机环境变量和路径配置

3.1.打开系统环境变量

我使用的是WIN10的系统,可以直接在任务栏输入环境变量,找到编辑系统环境变量按钮。

 

打开后,点击环境变量

 

3.2.配置用户变量及其PATH

在【用户变量】里新建变量OpenCV,变量值:为OpenCv安装路径的build目录。

 

在【用户变量】里编辑变量path,变量值:..opencv\build\x86\vc11\bin;

【注意!】一定要在编辑界面新建,否则会覆盖电脑上原来配置好的用户变量。覆盖原来的用户变量会导致电脑的任务栏按钮失灵、开始菜单快捷方式点选时无反应等问题,更严重的情况会导致无法开机等问题。(我就遇到了这个坑T_T ... )

  

同理配置ZBar的用户变量和path:

在这里可能有人会有疑问:编译器是VS2012,变量值不应该是XX\vc12\bin吗?注意,在OpenCV配置中,vc11即对应VS2012,vc12对应的是VS2013。

另一点要关注的是上述变量值到底应该是x86还是x64?这里x86还是x64的选择跟你的电脑是32位还是64位无关,vs2012编译环境默认的使用win32编译器,所以选择x86。

3.3.配置系统变量

在【系统变量】里编辑(或添加)Path变量,变量值为安装路径下的\opencv\build\x86\vc11\bin,和ZBar安装路径下的bin目录..\ZBar\bin。

  

注意要使用英文输入下的分号和前面已有的路径分开,千万不能覆盖原来的变量!添加完之后需要重启或注销计算机,环境变量才会生效。道理同用户变量path。

3.VS2012工程项目属性配置

3.1添加属性表

新建Win32控制台应用程序,工程名命名为ZbarTest,过程图就省略~

在工程ZbarTest工程的视图目录的下拉菜单中打开属性管理器:

 

在属性管理器的Debug|Win32目录上单击选择“添加新项目属性表”,新建属性表,并命名为“Zbar_Debug_Setting.props“,如下图所示:

 

点击添加,完成对项目属性表的添加。

同理,添加OpenCV_DebutSetting,如下图。

 

3.2.Zbar属性表配置

1) VC++目录配置

双击刚才添加的“Zbar_Debug_Setting.props“属性表,选择通用属性->VC++目录:

在VC++目录->包含目录里添加1个目录: 安装路径ZBar\include

 

选择VC++目录->库目录,在库目录里添加1个目录: 安装路径\ZBar\lib

 

2)输入目录配置

打开通用属性->链接器->输入:

 

在附加依赖项里添加1个依赖项: libzbar-0.lib

 

3.3.OpenCV属性表配置

同理,双击刚才添加的“Zbar_Debug_Setting.props“属性表 配置OpenCV 属性表。

1)选择通用属性->VC++目录,在包含目录里添加3个目录:

D:\ProgramFilesD\opencv\build\include\opencv2

D:\ProgramFilesD\opencv\build\include\opencv

D:\ProgramFilesD\opencv\build\include

 

2)同样在VC++目录下,在库目录里添加1个目录:

...\opencv\build\x86\vc11\lib

 

3)选择通用属性->链接器->输入->附加依赖项,在附加依赖项里添加库文件:

opencv_ml2413d.lib

opencv_calib3d2413d.lib

opencv_contrib2413d.lib

opencv_core2413d.lib

opencv_features2d2413d.lib

opencv_flann2413d.lib

opencv_gpu2413d.lib

opencv_highgui2413d.lib

opencv_imgproc2413d.lib

opencv_legacy2413d.lib

opencv_objdetect2413d.lib

opencv_ts2413d.lib

opencv_video2413d.lib

opencv_nonfree2413d.lib

opencv_ocl2413d.lib

opencv_photo2413d.lib

opencv_stitching2413d.lib

opencv_superres2413d.lib

opencv_videostab2413d.lib

 

 

至此,VS2012环境下配置OpenCV2.4.13和ZBar的工作已经全部完成了,对于之后创建的OpenCV工程,只需要添加本工程的属性配置即可,不再需要一步一步重复配置。

【方法】:首先保存本工程的属性配置文件OpenCV_Debug_Setting.props到备用文件夹,该属性配置文件在本项目中的路径是:

...Visual Studio 2012\Projects\ZbarOpenCvTest\ZbarOpenCvTest

 

之后在新创建的工程中,在属性管理器中添加OpenCV_Debug_Setting.props属性表即可。

同理:之后在新创建的工程中,在属性管理器中添加ZBar_Debug_Setting.props属性表即可。

4.测试代码

4.1 OpenCV测试代码

#include <iostream>  
#include<core/core.hpp>  
#include<highgui/highgui.hpp>  
  
  
using namespace cv;  
using namespace std;  
int main()  
{  //读入图片,注意图片路径  
Mat image=imread("F:\\Picture\\lena.png");  
  
  
//图片读入成功与否判定  
if(!image.data)  
{  
cout<<"you idiot!where did you hide lena!"<<endl;  
  
  
//等待按键  
system("pause");  
return -1;  
}  
  
  
//创建一个名字为“Lena”的图像显示窗口,(不提前声明也可以)  
namedWindow("Lena",1);  
  
  
//显示图像  
imshow("Lena",image);  
  
  
//等待按键  
waitKey();  
return 0;  
}  

 

测试结果:会显示代码指定目录下的lena图片

 

4.2.Zbar测试代码

 

#include "zbar.h"        
#include "cv.h"        
#include "highgui.h"        
#include <iostream>        
    
using namespace std;        
using namespace zbar;  //添加zbar名称空间      
using namespace cv;        
    
int main(int argc,char*argv[])      
{        
    ImageScanner scanner;        
    scanner.set_config(ZBAR_NONE, ZBAR_CFG_ENABLE, 1);      
    Mat image = imread("code.jpg");    
      if(!image.data)  
        {  
           cout<<"请确认图片"<<endl;  
           system("pause");  
           return 0;  
        }  
    Mat imageGray;        
    cvtColor(image,imageGray,CV_RGB2GRAY);        
    int width = imageGray.cols;        
    int height = imageGray.rows;        
    uchar *raw = (uchar *)imageGray.data;           
    Image imageZbar(width, height, "Y800", raw, width * height);          
    scanner.scan(imageZbar); //扫描条码      
    Image::SymbolIterator symbol = imageZbar.symbol_begin();    
    if(imageZbar.symbol_begin()==imageZbar.symbol_end())    
    {    
        cout<<"查询条码失败,请检查图片!"<<endl;    
    }    
    for(;symbol != imageZbar.symbol_end();++symbol)      
    {        
        cout<<"类型:"<<endl<<symbol->get_type_name()<<endl<<endl;      
        cout<<"条码:"<<endl<<symbol->get_data()<<endl<<endl;         
    }        
    imshow("Source Image",image);          
    waitKey();      
    imageZbar.set_data(NULL,0);    
    return 0;    
}      

测试结果:

 

注意,图片应存放在生成的.exe目录下。

 

 

 

 

 

 

 

共有 人打赏支持
粉丝 1
博文 1
码字总数 1639
×
yylea
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: