本文是以OpenCV-2.4.13 Ubuntu16.04 介绍编译配置方法的,有关OpenCV版本的地方需要修改。
首先要确保ubuntu已经安装GTK+ 2.x(可以执行“pkg-config --modversion gtk+-2.0”命令查看GTK+ 2.x版本,见图1)或者Carbon,否则可能导致程序不能正常运行.如果系统没有安装,通过下面命令进行安装。
sudo apt-get install libgtk2.0*
然后,使用如下命令查看GTK+ 2.x版本:
pkg-config --modversion gtk+-2.0
一、首先要安装cmake
Step1.1 具体操作如下:版本为V3.8:http://download.csdn.net/detail/lovelyaiq/9818218
$ tar -zxvf cmake-3.8.0.tar.gz
$ cd cmake-2.8.8
$ ./bootstrap
Step1.2 完成后,会看到提示“CMake has bootstrapped. Now run make.”,然后执行命令:
-- Configuring done
-- Generating done
---------------------------------------------
CMake has bootstrapped. Now run make.
$ make
sudo make install
同样的执行完这个操作后也要稍等片刻。
Step1.3 这时我们可以使用“cmake –version”命令来查看终端是否有关于cmake的版本信息。如果没有的话,我们就需要修改用户的PATH路径,把cmake路径加入用户环境变量,可以运行如下命令:
echo "export PATH=$PATH:/usr/local/bin" >> ~/.bashrc
注意:这里我们使用的是root用户修改的,因此只对root用户生效!如果其他用户也要使用cmake命令,再使用其他用户登录终端后修改用户环境变量。
也可以修改~/.bashrc文件,如下修改在文件最后添加上面的代码。
注意这里与windows下面的环境变量不同的是环境变量之间是用冒号“:”分隔开的,而非分号“;”,重启终端使用户变量生效。
测试:重新登录系统(不必重启机器,开始->logout 或者重新打开终端即可),使以上设置生效,在命令行输入cmake --version,会出现如下信息,这说明cmake环境已经成功配置并可以正常使用了。
$ cmake --version
cmake version 3.8.0
CMake suite maintained and supported by Kitware (kitware.com/cmake).
二、接下来我们来编译Opencv
Step2.1 在Opencv官网下载Opencv源码,并解压。
$ tar -jxvf opencv-2.4.13.tar.bz2
$ cd OpenCV-2.3.1
$ mkdir release
$ cd release
Step2.2 进入release目录后,执行如下命令(注意这是一整条命令且最后有两点“..”),其中“CMAKE_INSTALL_PREFIX=/opt/Opencv2“ 表示当我们使用“make install”命令安装OpenCV的时候,会将相关文件拷贝到/opt/Opencv2目录下。
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/opt/Opencv2 -D BUILD_PYTHON_SUPPORT=ON ..
执行上述命令后,release目录下会生产Makefile文件等,如下图所示:
Step2.3 便可执行make进行编译:
make
Step2.4 编译完成后运行“sudo make install”命令,会在/opt/Opencv2目录下生成opencv相关目录及文件,包括bin、lib、include等,如图5所示。三、最后我们来配置编译环境,这里我们选择Qt IDE:http://download.qt.io/archive/qt/。下载完成后,按着向导一步一步地安装Qt即可(一直单击“Next”按钮)。
下面我们配置Qt下OpenCV开发环境:
然后,将opencv.pc拷贝到/usr/share/pkgconfig目录,此时可以使用“pkg-config opencv --cflags --libs”测试opencv.pc配置是否生效(如图7所示)。
-I/opt/Opencv2/include/opencv -I/opt/Opencv2/include -L/opt/Opencv2/lib -L/usr/local/cuda/lib64 -lopencv_calib3d -lopencv_contrib -lopencv_core -lopencv_features2d -lopencv_flann -lopencv_gpu -lopencv_highgui -lopencv_imgproc -lopencv_legacy -lopencv_ml -lopencv_nonfree -lopencv_objdetect -lopencv_ocl -lopencv_photo -lopencv_stitching -lopencv_superres -lopencv_ts -lopencv_video -lopencv_videostab -lcufft -lnpps -lnppi -lnppc -lcudart -lrt -lpthread -lm -ldl
使用如下命令修改/etc/ld.so.conf文件,将OpenCV链接库添加进去。(此时若无权限,请使用root进行操作,可以使用“sudo su”命令切换root用户)。
echo "/opt/Opencv2/lib " >> /etc/ld.so.conf
使用Qt IDE新建项目,依次选择“新建项目-其他项目-空的Qt项目”,单击“选择”,浏览到指定目录,依次单击“下一步”即可。
在项目文件(*.pro,如本人新建项目的名称为OpenCV,即需要修改OpenCV.pro)中添加如下内容:
INCLUDEPATH += /opt/Opencv2/include/
LIBS += `pkg-config opencv --cflags --libs`
其中“LIBS += `pkg-config opencv --cflags --libs`” 包含了所有的Opencv动态链接库。新建源文件(*.cpp,,如本人新建的源文件的文件名为OpenCV.cpp),编写代码,构建-构建所有项目(Ctrl+Shift+B)、构建-运行(Ctrl+R)即可。
测试例子(源码):
#include <opencv/highgui.h>
int main( int argc, char** argv ) {
IplImage* img = cvLoadImage( argv[1] );
cvNamedWindow( "OpenCV", CV_WINDOW_AUTOSIZE );
cvShowImage( "OpenCV", img );
cvWaitKey(0);
cvReleaseImage( &img );
cvDestroyWindow( "OpenCV" );
return ( 0 );
}
编译完成后,在可执行文件所在的目录执行./OpenCV lena\(1\).tiff,效果如图8所示:
相关代码如下:
#include <opencv/cv.h>
#include <opencv/highgui.h>
int main( int argc, char **argv )
{
cvNamedWindow( "Video", CV_WINDOW_FULLSCREEN );
CvCapture *capture = cvCreateFileCapture( argv[ 1 ] );
IplImage *frame;
while (1) {
frame = cvQueryFrame( capture );
if ( !frame )
break;
cvShowImage( "Video", frame );
char c = cvWaitKey( 33 );
if ( c == 27 )
break;
}
cvReleaseCapture( &capture );
cvDestroyWindow( "Video" );
return ( 0 );
}
附录:
1. Ubuntu中打开终端的方法:
法1. (当然是笨方法了),依次打开(应用程序-附件-终端),如果闲的麻烦,可以直接把它添加面板,这样也方便点。
法2.首先按住Alt,然后按一下F2,出来一个运行框,在里面输入 gnome-terminal即可运行。在这个运行框里,可以执 行很多命令,想当于Windows的[运行](Windows+R键),不过很难记住。
法3. 可以把终端窗口打开放在鼠标右键,效果是在桌面或文件夹内的空白处右键点击,将出现“从终端打开”的快捷方式。那个需要使用一个软件。安装很简单,打开终端,在里面输入以下命令: