ZBar在Windows上的使用 -- ImageMagick and OpenCV
博客转载自:https://blog.csdn.net/sunflower_boy/article/details/49095265
1. 下载ZBar v0.10 http://zbar.sourceforge.net/ 外网无法进入的话,在此下载 http://download.csdn.net/detail/sunflower_boy/9175433
1.1 默认安装 注意勾选上Development Headers and Libraries

Zbar Windowns版本安装
安装完成后可在ZBar安装路径下找到examples文件夹,用vs2008及以上编译器可以打开工程文件,在源文件中可以看见例程还需要ImageMagick组件来读取文件,将文件转换成需要的格式 。
2.下载ImageMagick 我的版本是ImageMagick-6.2.7-Q8
2.1 默认安装 注意勾选Install development headers and libraries for C and C++ 
3. 将Zbar和ImageMagic的头文件和链接库添加到工程中,同时二者相对应的动态运行库添加到系统全局路径。
4. 打开scan_image.cpp ,屏蔽掉11行的
if(argc < 2) return(1);
将27行的
Magick::Image magick(argv[1]);
替换为
Magick::Image magick("barcode.png");
或者 直接在VS中设置运行参数
1. 选择PROJECT—>Properties—>Configuration Properties—>Debugging—>Command Arguments
2. 在Command Arguments中添加参数 barcode.png
运行结果
decoded EAN-13 symbol "9876543210128"
程序分析
从例程中可以看出Magick只是用来打开图片,转换格式,转换成灰度,二维矩阵的作用,用OpenCV可以实现相同的作用。只需要将opencv的头文件和库目录添加到VS,修改图像处理部分为
//opencv
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; // wrap image data
Image image(width, height, "Y800", imgGray.data, width * height);
同时添加opencv库
opencv_core2413d.lib
opencv_highgui2413d.lib
opencv_imgproc2413d.lib
编译,运行可以得到相同的解码结果。
ZBar在Windows上的使用 -- ImageMagick and OpenCV的更多相关文章
- Windows 上安装 Jekyll.
Jekyll是一个静态网站生成工具.它允许用户使用HTML.Markdown或Textile来建立静态页面,然后通过模板引擎Liquid(Liquid Templating Engine)来运行. 原 ...
- 在Windows上安装Elasticsearch 5.0
在windows上安装Elasticsearch Elasticsearch可以使用.zip软件包安装在Windows上. elasticsearch-service.bat命令,它将设置Elasti ...
- 使用Gitblit 在windows 上部署你的Git Server
Gitblit: 在windows 上部署你的Git Server 前言 之前在dudu的文章里看到过用bonobogit 部署在 IIS 7.5 上的Window 平台的git 服务器.学着部署使用 ...
- 在 Windows 上安装Rabbit MQ 指南
rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统.他遵循Mozilla Public License开源协议.采用 Erlang 实现的工业级的消息队列(MQ)服务器. Ra ...
- 在Windows上安装虚拟机详细图文教程
用虚拟机来安装最新的软件,安装最新的系统等等比较保险,可以避免安装不顺利影响自己原来的系统和应用,想尝鲜又担心自己完全更换系统不适应的朋友可以尝试. 虚拟机下载:https://yunpan.cn/c ...
- flask在windows上用mod_wsgi部署
flask在windows上用mod_wsgi部署也是折腾了不少时间,下面就总结下. 首先下载Apache httpd,我认为Apache Hans比较好: 一般这种情况下,你的python环境已经安 ...
- 使用Windows上的Eclipse 远程调试 linux下的Tomcat
1:修改Linux上Tomcat的catalina.sh,第一行添加declare -x CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_sock ...
- Samba 共享文件后在Windows 上无法访问的问题
/etc/samba/smb.conf的配置如下: #============================ Share Definitions ========================== ...
- Windows上Python2和3如何兼容
作者:匿名用户链接:https://www.zhihu.com/question/21653286/answer/95532074来源:知乎著作权归作者所有,转载请联系作者获得授权.想学习Python ...
随机推荐
- vue项目中如何将工具函数模块化导出
如下所示,utils文件夹下的js里都是封装好的工具函数, 如formatDate.js内容如下: export default (day)=>{ var tmpDate = day ? new ...
- 如何实现vue-cli搭建的前端项目的自动打包
实现vue-cli + webpack +vue项目的自动打包: 后台java代码: public class OpenDirectory { public static void main(Stri ...
- LeetCode OJ:Delete Node in a Linked List(链表节点删除)
Write a function to delete a node (except the tail) in a singly linked list, given only access to th ...
- Hibernate(1)
一.什么是hibernate 1. hibernate是开源的轻量级框架,应用在javaee三层结构中 dao层框架,使用orm思想对数据库进行crud操作 2 .在dao层里面做对数据库crud操作 ...
- hdu4442 Physical Examination(贪心)
这种样式的最优解问题一看就是贪心.如果一下不好看,那么可以按照由特殊到一般的思维方式,先看n==2时怎么选顺序(这种由特殊到一般的思维方式是思考很多问题的入口): 有两个队时,若先选第一个,则ans= ...
- CANopenSocket CANopenCGI.c hacking
/**************************************************************************************** * CANopenS ...
- 综述c++
1.背景 C语言作为结构化和模块化的语言,在处理较小规模的程序时,比较得心应手.但是当问题比较复杂,程序的规模较大时,需要高度的抽象和建模时,C语言显得力不从心. 2.应用领域 如果项目中,既要求效率 ...
- Operating System-进程间互斥的方案-保证同一时间只有一个进程进入临界区(3)- TSL指令
本文接上一篇文章继续介绍如何实现同一时间只允许一个进程进入临界区的机制.本文主要介绍TSL指令. 方案汇总 屏蔽中断 锁变量 严格轮换法 TSL指令 Peterson解法 一.What is TSL ...
- POJ3111(最大化平均值)
K Best Time Limit: 8000MS Memory Limit: 65536K Total Submissions: 8458 Accepted: 2163 Case Time ...
- springboot或者jetty等启动服务器后,如何去停止这个服务
首先在win7下找到运行,但是win7的运行不像XP那么好找,win7运行的位置在:开始→所有程序→附件→运行. 然后在对话框中,输入cmd(大小写均可). 然后是如何查看80端口的方法,一般 ...