zbar配置

摘要:
形象data){cout˂˂“图片为空,请确认!”˂˂endl;系统return0;}//图像转换,Mat到ImageMatimageGray;cvt颜色;intwidth=图像灰度。cols;inheight=图像灰色。排;uchar*raw=图像灰色。数据ImageimageZbar;//扫描代码扫描仪。扫描图像::SymbolIteratorsymbol=imageZbar。symbol_begin();如果{cout˂˂“扫描失败!=imageZbar.symbol_end();++符号){cout˂˂“类型:”˂˂endl˂get_Type_name()˂˂endl;cout˂˂“条形码:”˂˂endl˂get_data()˂˂endl;}//显示imshow;waitKey();imageZbar。集合_数据;//清除缓存返回0;std::cout˂˂“HelloWorld!

1、下载安装zbar,选择full全部安装。也可以从这里下载

zbar配置第1张

 2、由于官方给的是32位的,继续下载64位的zbar

替换文件:

  • 将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 文件夹;

3、将bin目录添加到环境变量

zbar配置第2张

【实战】

VS创建控制台应用

#include <opencv.hpp>
#include <zbar.h>

#include <iostream>

using namespace cv;
using namespace zbar;
using namespace std;

int main()
{
    //定义扫描器
    ImageScanner scanner;
    scanner.set_config(ZBAR_NONE, ZBAR_CFG_ENABLE, 1);

    //加载图片
    Mat image = imread("D:/qrcode.jpg");
    if (!image.data)
    {
        cout << "图片为空,请确认!" << endl;
        system("pause");
        return 0;
    }

    //图片转换,Mat转Image
    Mat imageGray;
    cvtColor(image, imageGray, COLOR_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;
        cout << "条码:" << endl << symbol->get_data() << endl;
    }

    //显示
    imshow("Source Image", image);
    waitKey();
    imageZbar.set_data(NULL, 0);//清除缓存
    return 0;


    std::cout << "Hello World!\n";
}

 我的属性表.props如下:

标黄部分修改为自己的版本,VS中添加属性表即可。

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ImportGroup Label="PropertySheets" />
  <PropertyGroup Label="UserMacros" />
  <PropertyGroup />
  <ItemDefinitionGroup>
    <ClCompile>
      <AdditionalIncludeDirectories>C:\opencv\debug\build\include;C:\opencv\debug\build\include\opencv2;C:\Program Files %28x86%29\ZBar\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
    </ClCompile>
    <Link>
      <AdditionalLibraryDirectories>C:\opencv\debug\build\lib;C:\Program Files %28x86%29\ZBar\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
      <AdditionalDependencies>opencv_calib3d455d.lib;opencv_core455d.lib;opencv_dnn455d.lib;opencv_features2d455d.lib;opencv_flann455d.lib;opencv_gapi455d.lib;opencv_highgui455d.lib;opencv_imgcodecs455d.lib;opencv_imgproc455d.lib;opencv_ml455d.lib;opencv_objdetect455d.lib;opencv_photo455d.lib;opencv_stitching455d.lib;opencv_video455d.lib;opencv_videoio455d.lib;libzbar64-0.lib;%(AdditionalDependencies)</AdditionalDependencies>
    </Link>
  </ItemDefinitionGroup>
  <ItemGroup />
</Project>

免责声明:文章转载自《zbar配置》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇antd-vue中table行高亮效果实现搭建前端监控系统(备选)用户行为统计和监控篇(如何快速定位线上问题)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

centos6.5上安装guacamole

一、工作安排 在centos6.5上安装guacamole。安装guacamole前需要先安装jdk和tomcat。 二、具体步骤 一、安装jdk     1.下载jdk压缩文件 本次选择jdk1.8.0_65     2.新建/usr/java文件夹,将jdk压缩包解压到 /usr/java下,改名为jdk1.8 3.配置java环境变量 编辑 /etc...

【问题解决记录】无法识别的标志“-sdlMode”,在“p2”中

本文为大便一箩筐的原创内容,转载请注明出处,谢谢:http://www.cnblogs.com/dbylk/这是本人第一次使用MarkDown编辑器,试试看效果—w—,下面是正文: ## 一、报错原因 昨天用SIMD指令编写了几个矩阵计算函数,想要替换掉DX的函数达到优化性能的目的。 因为公司项目使用的编译器是VS2008,而VS2013编译出来的SI...

C++ 术语(C++ Primer)

argument(实参):传递给被调用函数的值。block(块):花括号括起来的语句序列。buffer(缓冲区):一段用来存放数据的存储区域。IO 设备常存储输入(或输出)到缓冲区,并独立于程序动作对缓冲区进行读写。输出缓冲区通常必须显式刷新以强制输出缓冲区内容。默认情况下,读 cin 会刷新 cout;当程序正常结束时,cout 也被刷新。built-i...

OpenGL学习——搭建OpenGL运行环境——生成一个空白视口——基于GLFW&amp;amp;GLEW

    最近学习OpenGL,读OpenGL宝典一头蒙,各种gl函数不知所云。逐决定先搭OpenGL运行环境,详细如下。     1、首先OpenGL是什么?是一个标准规范,是一个巨大的状态机,并无具体实现,大多数实现都是由显卡厂商编写的。         创建一个OpenGL上下文(Context)和一个用于显示的窗口,这个很底层。当然有一些库可以选择,...

SQLite安装 以及 SQLite header and source version mismatch错误解决 (In debian)

小项目 需要sqlite3数据库支持 官网下载 http://www.sqlite.org/download.html 解压,进入目录执行 ./configure make make install 运行后出错 哈哈麻烦让人成长 关键词搜索到了 http://blog.csdn.net/gebitan505/article/details/19982...

Linux平台Java调用so库JNI使用例子

1.确保gcc编译器已安装 2.编写HelloJNI.java代码,用native声明需要用C实现的函数。 如果源程序是包含在package里的话,应该建立同样的文件夹结构,比如/home/swan/test/net/wangliping/HelloJNI.java   package net.wanglipingpublic class Hello...