作者:邱国华
转自:http://blog.sina.com.cn/s/blog_9f1496990100zcdg.html
原文:http://www.opencv.org.cn/forum/viewtopic.php?f=1&t=18047&p=58428&hilit=Ubuntu下安装#p58428
我刚接触OpenCV不久,在编译OpenCV的过程中遇到了不少问题,但最终还是编译通过,并能正常运行一个程序了。
就把这经验写下来,免得大家再绕远路。
OpenCV 2.3.1 for Linux编译,使用记录
(所有编译,使用过程均在Ubuntu 10.04下完成)
1.下载OpenCV
下载地址为http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/
选择2.3.1版的OpenCV。
2.下载所需库
在终端输入如下命令:
$sudo apt-get install libgtk2.0-dev pkg-config
无法显示摄像头采集到的视频,可能是因为没有安装libgtk2.0-dev和pkg-config
VIDIOC_QUERYMENU: Invalid argument
相关资料:http://www.ozbotz.org/opencv-install-troubleshooting/
基本解决方法是:
— OpenCV-2.3.1/modules/highgui/src/cap_libv4l.cpp 2011-09-1220:41:29.000000000 +0200
+++ opencv/modules/highgui/src/cap_libv4l.cpp 2011-12-0119:00:37.503761631 +0100
@@ -489,7 +489,7 @@
{
// printf (” Menu items:\n”);
CLEAR (capture->querymenu);
- capture->querymenu.id =capture->queryctrl.id;
+ capture->querymenu.id =capture->queryctrl.id &~V4L2_CTRL_FLAG_NEXT_CTRL;
for (capture->querymenu.index =capture->queryctrl.minimum;
(int)capture->querymenu.indexqueryctrl.maximum;
capture->querymenu.index++)
3.下载cmake
建议使用cmake-qt-gui,在终端输入如下命令:
$sudo apt-get install cmake-qt-gui cmake
4.使用cmake-gui生存Makefile
在终端输入
$cmake-gui
在"Where is the sourcecode:"中填入"/home/administrator/OpenCV-2.3.1"
在"Where to build thebinaries:"中填入"/home/administrator/opencv2.3.1-obj"(这个文件是自己新建的)
进入配置页面,根据自己到需求选择。我的选择是
点击"configure",选择"Unix Makefiles","Use default nativecompilers"。因为这里只是编译普通到PC版OpenCV。
变更"CMAKE_INSTALL_PREFIX"为"/usr"
(如果设置好之后 generate是灰色的 在点一次configure)
再点击"Generate",即生成Makefile。
4.进入"/home/administrator/opencv2.3.1-obj"目录,输入
$make
$make install
到此,OpenCV编译完成。
安装好了之后在命令行输入命令:
sudo gedit /usr/share/qt4/mkspecs/default/qmake.conf在文件内添加了下面两句:
使用pkg-config opencv --libs --cflags opencv查看openCV安装后的环境
INCLUDEPATH
LIBS += -L/usr/local/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann
在QT项目到".pro"文件中加入
INCLUDEPATH += /usr/include/opencv
LIBS += -lopencv_ml -lopencv_core -lopencv_highgui -lopencv_video-lopencv_imgproc -lopencv_objdetect
这样基本的OpenCV程序就可以运行了,如果遇到缺少库和头文件的问题,更据提示到/usr/include和/usr/lib中查找。