ZBar在Windows上的使用(1)-ImageMagick
来源:互联网 发布:java框架源码 编辑:程序博客网 时间:2024/05/16 16:18
ZBar在Windows上的使用
- 下载ZBar v0.10 http://zbar.sourceforge.net/
外网无法进入的话,在此下载http://download.csdn.net/detail/sunflower_boy/9175433
1.1 默认安装
注意勾选上Development Headers and Libraries
安装完成后可在ZBar安装路径下找到examples文件夹,用vs2008及以上编译器可以打开工程文件(由于权限问题,部分机器可能要将examples文件夹拷贝至其他目录下运行)
在工程属性中可以看见例程还需要ImageMagick组件来读取文件,将文件转换成需要的格式 - 下载ImageMagick
http://www.imagemagick.org/download/binaries/ImageMagick-6.9.2-4-Q8-x86-dll.exe
注意:我的版本是6.9.1-7-Q8-x86。和上面下载链接上的不一样,如果使用上面的程序安装,下面说明中的路径都要改成对应的版本路径。
2.1 默认安装
注意勾选Install development headers and libraries for C and C++
2.2 修改工程属性以匹配自己下载安装的版本
project->property->C/C++->General->Additional Include Directories
C:\Program Files (x86)\ImageMagick-6.9.1-Q8\include
2.3 project-property-C/C++-General-Additional Include Directories
C:\Program Files (x86)\ImageMagick-6.9.1-Q8\lib\CORE_RL_Magick++_.lib
2.4 如果出现error C2220: 警告被视为错误:打开属性project-property-C/C++-General->Treat Warnings As Errors改为No(/WX-)。 打开scan_image.cpp
屏蔽掉11行的if(argc < 2) return(1);
将27行的Magick::Image magick(argv[1]);
替换为Magick::Image magick("barcode.png");
程序最后置断点,运行,OK!分析
从例程中可以看出Magick只是用来打开图片,转换格式,转换成灰度,二维矩阵的作用。用OpenCV应该也可以。附录1:
scan_image.cpp
#include <iostream>#include <Magick++.h>#include <zbar.h>#define STR(s) #susing namespace std;using namespace zbar;int main (int argc, char **argv){ //if(argc < 2) return(1);#ifdef MAGICK_HOME // http://www.imagemagick.org/Magick++/ // under Windows it is necessary to initialize the ImageMagick // library prior to using the Magick++ library Magick::InitializeMagick(MAGICK_HOME);#endif // create a reader ImageScanner scanner; // configure the reader scanner.set_config(ZBAR_NONE, ZBAR_CFG_ENABLE, 1); // obtain image data Magick::Image magick("barcode.png"); // read an image file int width = magick.columns(); // extract dimensions int height = magick.rows(); Magick::Blob blob; // extract the raw data magick.modifyImage(); magick.write(&blob, "GRAY", 8); const void *raw = blob.data(); // wrap image data Image image(width, height, "Y800", raw, width * height); // scan the image for barcodes int n = scanner.scan(image); // extract results for(Image::SymbolIterator symbol = image.symbol_begin(); symbol != image.symbol_end(); ++symbol) { // do something useful with results cout << "decoded " << symbol->get_type_name() << " symbol \"" << symbol->get_data() << '"' << endl; } // clean up image.set_data(NULL, 0); return(0);}
想要进一步了解Magick的可参考
http://www.imagemagick.org/Magick++/tutorial/Magick++_tutorial.pdf
0 0
- ZBar在Windows上的使用(1)-ImageMagick
- ZBar在Windows上的使用
- ZBar在Windows上的使用(2)-OpenCV
- ImageMagick 在windows下的安装
- 在 Windows 下安裝 ImageMagick
- imagemagick and zbar installation
- 在macOS上运行ImageMagick
- ZBar的简单使用
- zBAR二维码的使用
- ZBar的简单使用
- ZBar的使用
- ZBar与ZXing使用后感觉(上)
- windows 10 上安装zbar(python)
- 【ImageMagick 】-ImageMagick的安装和使用
- ImageMagicK的使用
- ImageMagick的使用技巧
- Boost在windows上的使用
- git hub在windows上的使用
- [Java]Spring入门
- 路径说明
- mahout调用协同过滤
- spark学习2-join
- java判断是否是周末
- ZBar在Windows上的使用(1)-ImageMagick
- Hadoop远程过程调用
- Android开发总结笔记 Date&Time(时间日期相关组件) 1-1-16
- 这些git技能够你用一年了
- 读取数据从Uri
- 游戏服务器端开发要点
- Hbase
- IDE工具 - VS2012中NuGet安装第三方库
- JavaScript DOM 扩展