Linux下摄像头+OpenCV+zbar的编译+例程
来源:互联网 发布:大连育知同创怎么样 编辑:程序博客网 时间:2024/05/16 04:38
Zbar的识别能力让我出乎意料。能够在一张较为复杂的图中,十分迅速且准确的定位并识别二维码。
条形码识别能力也很好,但是摄像头在采集条形码的时候,由于竖线间距小,很容易糊掉,二维码完全没问题。
1.下载
官网 http://zbar.sourceforge.net/download.html 下载最新版
或
wget http://downloads.sourceforge.net/project/zbar/zbar/0.10/zbar-0.10.tar.gz
如果你从sourceforge上下载请直接跳到第2步。
理论上可以从github上下载
git clone https://github.com/ZBar/ZBar.git
从github下载后需要自己 aclocal autoconf autoheader automake --add-missing
但不知为何,我一直在automake上出现各种警告无法生成Makefile,研究了很久也不知其所以,很是郁闷,待研究。
2.config
由于使用OpenCV作为图像采集的媒介,我们不需要zbar支持很多功能,在配置的时候可以disable许多捆绑选项。
./configure --without-python --disable-video --without-imagemagick --without-jpeg --without-qt --without-gtk --without-x
我是将所有选项都disable了,你也可以根据自己需要配置,但是需要一些库和软件的支持,根据提示apt-get即可。
如果你将zbar当作OpenCV的补充,那么尚可全都without。
3.make && make install
4.例程:
#include <iostream> //iostream需放在zbar.h之前,因为zbar兼容C,iostram中define了_cplusplus,zbar检测到会自动extern "C"#include "zbar.h"#include <opencv2/opencv.hpp>using namespace std;using namespace zbar; using namespace cv;int main(int argc,char*argv[]){ ImageScanner scanner; scanner.set_config(ZBAR_NONE, ZBAR_CFG_ENABLE, 1); Mat image; VideoCapture cam(0); //打开摄像头 int i =0; while(1) { cam.read(image); imshow("image",image); 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()) { for(;symbol != imageZbar.symbol_end();++symbol) { cout<<"类型:"<<endl<<symbol->get_type_name()<<endl<<endl; cout<<"条码:"<<endl<<symbol->get_data()<<endl<<endl; } } imageZbar.set_data(NULL,0); char key = waitKey(100); if(key == 27) break; } return 0;}
- Linux下摄像头+OpenCV+zbar的编译+例程
- 解决OpenCV 1.0.0在linux下编译ffmpeg有关例程时的错误
- Opencv 例程讲解 开头篇----window下例程编译
- linux 摄像头拍照例程
- linux下json库的编译及例程
- linux下json库的编译及例程
- linux下C++/ json库的编译及例程
- win10下配置opencv、zbar
- Linux下基于OpenCV的摄像头数据采集与传输
- linux下在安装OpenCV的摄像头依赖库
- 关于虚拟机下Linux的opencv获取摄像头图像问题
- Linux下编译Android zbar,包含64位so文件
- Linux下编译Opencv
- Linux下编译opencv
- linux下编译opencv
- Linux下编译Opencv
- Ubuntu平台下OpenCV官方教程之how_to_scan_images.cpp例程的编译
- OpenCV (Linux下的编译与安装)
- L2-017. 人以群分(2017初赛)
- 汇编--8 转移指令的原理
- 数据挖掘算法之深入朴素贝叶斯分类
- 使用3dsMaxSDK重写Execute函数达到简单反混淆
- fragment的管理
- Linux下摄像头+OpenCV+zbar的编译+例程
- C++中地址和引用的异同
- redis可视化客户端工具TreeNMS
- idea 安装和配置jrebel
- websphere PCF 监控MQ
- c++ bitset 位集
- n皇后
- redis安装、配置与使用
- Class GraphObject