在Qt程序中使用OpenCV的介绍

本文详细介绍了在Qt程序中安装OpenCV的方法,包括解决安装过程中遇到的gstreamer头文件找不到的问题。同时提供了如何在Qt中使用OpenCV的代码例子,并通过实例展示了如何配置工程以支持OpenCV函数的调用。

在Qt程序中使用OpenCV的介绍

OpenCV安装
关于OpenCV的安装,参考:

http://opencv.willowgarage.com/wiki/InstallGuide

安装文档写得无比详细, 这里就不赘述了。 简单来说就是安装CMake,然后用cmake命令去配置和编译。

最简单的命令是 “cmake .”。 这一步应该不算一帆风顺, 笔者遇到了gstreamer头文件找不到的问题。 在OpenCV的代码里搜索一番没找到gstreamer的头文件目录在哪里配置, 而笔者对cmake又非常不熟悉, 只好用了个土方法, 在/usr/include下给本机的gstreamer目录建了个link到OpenCV使用的gstreamer路径。 OpenCV使用的gstreamer路径在生成的Makefile里提到了, 是/usr/include/gstreamer-0.10, 这个路径是从哪儿得到的这一点很神奇…谁要是知道的请不吝赐教啊。 笔者电脑中的路径则为/usr/inlcude/gstreamer-0.10-a, 故建立链接如下:
ln -s /usr/include/gstreamer-0.10-a /usr/include/gstreamer-0.10

代码例子
OpenCV里带了很多的sample, 在samples目录下, 其中一个引起了笔者的注意, 那就是samples/cpp/Qt_sample。 简单看了看代码, OpenCV里已经实现了和Qt的集成, 里面用Qt的API写了widget,可以直接把摄像头取得的内容显示在Qt的widget里。
但这个例子工程似乎并没有做好, 编译过程实在是太曲折了, 到目前还没找到方法编译成功, 报的错误是undefined reference。 第一个遇到的问题是默认的编译选项不会去编译samples目录, 为了寻找合适的编译选项颇费了点脑筋(因为笔者对cmake基本上可以说是一窍不通的…汗)。 尝试单独编译samples目录, 失败了, 报了个莫名其妙的cmake版本的问题。 估计是有些依赖的东西是需要顶层目录里读取的。 继续查找相关的脚本和配置, 发现CMakeList.txt里提到了一个BUILD_EXAMPLES变量, 当此变量为真值时会编译samples目录。 但笔者绞尽脑汁也没想出来怎么才能从外部配置这个值, 是用环境变量? cmake参数? 都试了, 没一个管用的。 找来找去发现了OpenCV的文档里有个例子,说明了如何设置变量,是在cmake的命令行传入 -D BUILD_EXAMPLES=ON这样的方式。 如此一来build整个工程时就会自动为samples目录创建Makefile。所以configure的命令变成:
cmake -D BUILD_EXAMPLES=ON .

生成的例子都在OPENCV_DIR/bin下,大家可以运行看看。(不包括Qt_sample这个例子)

在Qt中使用OpenCV
Qt程序要想用OpenCV的函数需要将opencv的头文件和库在工程pro文件里配置一下,添加INCLUDEPATH和LIBS,具体的方法参考:

http://www.opencv.org.cn/index.php/%E5%9C%A8Qt%E4%B8%AD%E4%BD%BF%E7%94%A8OpenCV%E5%BA%93

另外有一篇更实用更详细的文章, 还提供几个很好的例子, 是绝佳的参考。 大家有问题就仔细看这篇文章, 一般都能得到解答:

http://code.google.com/p/qt-opencv-multithreaded/wiki/Documentation

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值