win7+opencv+qt条形码搞起

  1. 云栖社区>
  2. 博客>
  3. 正文

win7+opencv+qt条形码搞起

lovedan 2013-04-26 00:24:00 浏览479
展开阅读全文

1.linux下的开源条码识别软件:zbar code reader, win下直接安装后zbarcam有问题 到sourceforge日本分站点下载的ok的 不过源代码自己调不通啊

zbar code reader实现了1维和2维的条码识别 fedora下yum的zbar可以运行 如果自己编译报错说是v4l没有找到,patch也打不上,各种reject,以后再说

2.win下opencv+qt的话qt下载包含mingw的版本的 然后下载cmake,把opencv编译否则qt链接不上lib文件,看这里http://blog.sina.com.cn/s/blog_4452275001014sxq.html

3.opencv2computer vision application programming cookbook上的视频那一章的第一个example代码,在qtcreator里面运行的话没有效果,无法播放,但是找到生成的exe文件双击打开就可以了?

后来发现,前面的配置有些问题的,正常的话编译器里面运行应该也可以的。开始的时候,装了mingw4.6的一个版本 opencv/dep/下装了一个opensource版本的qt 然后C:/下装了Qt5.0.1,附带的mingw是4.7的,版本不同的话g++各种蛋疼。后来都用4.7的了

这里的也同样的方法可以的

http://blog.sina.com.cn/s/blog_8b08096f010107xa.html  实现了读取现有的视频的功能

如果把capture的构造函数参数写为0那么会调用摄像头,双击exe文件时如果提示无法定位...libstdc++-6.dll(这个文件在qt安装文件夹那边) 的错误的话,那是因为我的qt中包含的mingw中的g++版本是4.7,而opencv2.4的版本是g++4.6的, 我先前也单独安装了一个4.6版本的MinGW所以把里面libstdc++-6.dll拷贝并且替换即可 

不过发现这样的话只能读取某一帧啊。

 

【1】调用摄像头实时显示

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>
#include <string.h>

using namespace cv;
using namespace std;


int main(){
    string msg="press q , Q or ESC to close this program";
    cout << msg << endl;
    VideoCapture capture(0);
    if(!capture.isOpened()) return 1;
    Mat frame;
    string window_name="Extracted Frame";
    namedWindow(window_name);
    while(true){
        capture >> frame;
        if(frame.empty())
            break;
        imshow(window_name, frame);
        char key=(char)waitKey(5);
        switch(key){
        case 'Q':
        case 'q':
        case 27:
            return 0;
        default: break;
        }
    }
}

  参考了sample中的starter_video.cpp做了简化

如果你运行exe报错说缺少dll文件那么找到dll之后放到windows目录下就ok了。。比如libstdc++-6.dll

网友评论

登录后评论
0/500
评论
lovedan
+ 关注