win7+opencv+qt条形码搞起
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