Opencv二维码识别之opencv和zbar下载安装及配置整理

本文详细介绍如何在Windows环境下利用Microsoft Visual Studio 2010集成OpenCV 3.0.0与Zbar条码识别库,包括软件下载、安装配置、环境变量设置及测试程序编写。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

window下的编译运行

1.首先要下载Microsoft Visual Studio 2010或者更高版本:对与该软件的相关配置参考《OPENCV 3》这本书;

2.下载和安装opencv3.0.0以及Zbar-0.10安装包

(1)下载

  Zbar 下载http://zbar.sourceforge.net/download.html(Zbar-0.10官网下载链接),提供了LinuxWindows等版本的下载,目前最新版本是zbar-0.10
  opencv下载页面http://opencv.org/downloads.html找到对应的Opencv for Windows版本下载。这里使用Version3.0.0。进入下图界面后鼠标下拉找一下3.0.0版本,点击Opencv for Windows,选择下载路径,我选的还是Zbar-0.10的下载路径。

(2)Zbar-0.10安装:

  找到刚才的下载路径后双击 ,开始安装Zbar-0.10,如下图:

           

     点击next,进入下图后勾选“DevelopmentHeadersand Libraries”:

         

      点击next后进入下图选择安装路径:

         

      点击install,等待安装完成之后在对应目录下出现下列文件夹,代表安装成功了.

 
(3)安装opencv3.0.0:(详解参考《OPENCV 3》这本书中)

下载完成之后双击“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 = VisualStudio 2013和2015

(5VS2010工程项目属性配置:

首先打开VS2010

文件->新建->项目->Visual C++新建Win32控制台项目;如下图: 新建Win32控制台应用程序,工程名命名为ZbarTest,过程图就省略~

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

点击下一步,再点击下一步,勾选空项目,然后点击完成;

现在进行Zbar和Opencv目录的配置:

先在源文件下建立一个.cpp源文件 命名为ZbarTest.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环境的配置

如图:

选择VC++目录->库目录:

在库目录里添加1个目录: D:\ProgramFilesD\ZBar\lib:

接下来完成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

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

完成后一定要选择“确定”

(6)环境变量配置:

     打开环境变量列表,这里跟在另一篇文章里Opencv+VS2010里的配置环境变量是一样的 ,如不知道环境变量如何配置,可以查看详细步骤。

如图:

添加Zbar的动态库所在目录:D:\ProgramFilesD\ZBar\bin; 添加之后系统就不会找不到需要的dll文件了。如图:

添加完之后务必记得注销电脑后生效。

完成上述步骤,环境基本就可以使用了。

(7)测试Win10+Zbar+Opencv+VS2010的组合是否成功:

#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("K1.jpg");   //不在mian函数同文件夹要写明路径 
    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;    
}
   
可以用手机QQ或者微信扫一扫噢。
到处为止,就可以进入opencv world了。并且可以识别一些二维码了。

欢迎提问一起探讨,喜欢的点个赞,谢谢。
奋斗 奋斗 奋斗

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值