ubuntu QT opencv

前言:看过本人博客的朋友都知道,我这个人还是比较青睐于红帽子系统的,目前经常使用的Linux是rhel 6.2和Fedora 15,毕竟红帽是那么的稳定与方便,只不过资源不太好找。在编译Learning OpenCV第二章第二个视频例子的时候却不能运行,我估摸着可能是解码器的问题,听朋友说Ubuntu比较方便,于是便下载安装,并又再对OpenCV进行重新编译,事实证明完全没有问题。
    本文是以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文件等,如下图所示:

ubuntu QT opencv_第1张图片

图 release目录下生成的文件及目录

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   
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所示:
    备注:如果在Linux下面使用cvCaptureFromFile( )、cvCaptureFromAVI等函数不能够打开视频,这是因为统解码器的问题。我们只需要安装ffmpeg解码器(注意在执行./configure命令的时候一定要加上“—enable-shared”参数,不然OpenCV将找不到ffmpeg库,如本人使用的命令为“./configure --enable-shared --enable-gpl”)。Ubuntu下也可以打开任意一个视频文件(或者在Ubuntu软件中心),将gstreamer的plugins通通装上。具体方法请问谷哥度娘,这里不做赘述。在Ubuntu下用OpenCV播放视频效果如图7所示:

相关代码如下:

#include   
#include   
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. 可以把终端窗口打开放在鼠标右键,效果是在桌面或文件夹内的空白处右键点击,将出现“从终端打开”的快捷方式。那个需要使用一个软件。安装很简单,打开终端,在里面输入以下命令:

你可能感兴趣的:(VC)