一、Qt5安装
如果Ubuntu系统是64位,直接从Qt官网(如下图)上下载qt-opensource-linux-x64-5.6.3.run,之后添加执行权限运行安装即可。但是如果ubuntu系统是32位,官网上并没有32位的安装包,经过网上一番搜寻,通过以下方法可以安装上。
这里写图片描述
以下是执行步骤:

sudo apt-get install build-essential(这是需要的工具)
sudo apt-get install cmake qt5-default qtcreator 
sudo apt-get install qmake

通过以上三个步骤,不出现意外情况Qt已经完成安装。
二、Opencv3.0安装
首先找到openCV的官网把最新的openCV包下载到ubuntu里,下载地址:https://opencv.org/releases.html
根据自己的需要,选择合适的版本,然后选择图中的【Sources】,点击进行下载。
这里写图片描述
下载完成后,在下载目录中执行解压命令进行解压:

unzip opencv-3.0.0.zip

解压完毕,接下来开始编译Opencv了。
在编译之前,首先确认系统上是否已经安装好libgtk2.0-dev and pkg-config,通过执行以下命令确认。

sudo apt-get install libgtk2.0-dev pkg-config

如果不按照这两个东西,后面运行时会报错

OpenCV Error: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script) in cvNamedWindow, file /home/aborn/software/OpenCV-2.4.1/modules/highgui/src/window.cpp, line 598
terminate called after throwing an instance of 'cv::Exception'
  what():  /home/aborn/software/OpenCV-2.4.1/modules/highgui/src/window.cpp:598: error: (-2) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function cvNamedWindow

之后进入opencv的目录中,在其目录下新建文件夹,文件夹名字随意,文件夹作用在于存放编译后的文件。

cd opencv-3.0.0
mkdir release

进入新建的release文件中,执行cmake命令,其中usr/local是lib文件的存放目录;

cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local .. 

完成上述步骤后,继续输入指令:

sudo make

这一步可能会执行很长时间,亲测大概需要20分钟,主要看电脑的配置。完成后继续执行以下命令:

sudo make install

这一步也可能需要点时间,执行完毕即编译完成,可以在usr/local/lib下看到编译好的opencv函数库,如下图所示:
这里写图片描述
接下来需要配置opencv的环境变量,通知执行命令:

sudo gedit /etc/ld.so.conf.d/opencv.conf

在打开的文件中输入/usr/local/lib,然后点击保存退出,如下图所示:
这里写图片描述
接着配置环境变量:

sudo gedit /etc/bash.bashrc

在打开的文件中输入以下内容,点击保存并退出。

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig export PKG_CONFIG_PATH

这里写图片描述
三、opencv+Qt测试
打开Qt Creator,新建一个控制台工程,如下图:
这里写图片描述
工程新建完成后,点击.pro文件,如下图
这里写图片描述
在文件中添加以下代码:

INCLUDEPATH += /usr/local/include \  
                /usr/local/include/opencv \  
                /usr/local/include/opencv2  
  
LIBS += /usr/local/lib/libopencv_highgui.so \  
        /usr/local/lib/libopencv_core.so    \  
        /usr/local/lib/libopencv_imgcodecd.so.3.0 

添加完成,记得按下Ctrl+S保存,之后在其他文件中添加相关头文件才能显示包含路径。在新建的工程目录下(即main.cpp文件所在的目录中),放一张图片用于测试,之后在main.cpp文件中添加测试代码;

#include <QCoreApplication>  
#include <opencv2/core/core.hpp>  
#include <opencv2/highgui/highgui.hpp>  
#include <opencv2/imgproc/imgproc.hpp>  
using namespace cv;    
int main(int argc, char *argv[])  
{    
    namedWindow( "src", WINDOW_AUTOSIZE );  
    Mat src1 = imread( "/home/cai/qtcode/test/firefox1.jpg" );  
    while(1)  
    {  
        imshow( "src", src1 );  
        char c =  waitKey(30);  
        if( 27==c )  
            return 0;  
    }  
}  

这里有个地方需要注意,之前看了网上很多教程,在imread中读取文件时,如果文件放在工程目录下,直接使用文件名即可读取,但我在测试的时候,始终报错(如下图)
这里写图片描述
使用图片的绝对路径(如下图所示的路径),则可以正常运行,打开的图片如下图所示。该问题的参考文章:http://answers.opencv.org/question/18135/opencv-error-assertion-failed-sizewidth0-sizeheight0-in-unknown-function/
这里写图片描述
测试的程序比较简单,如果能正常执行,则以上的安装和配置过程即已成功。

Logo

更多推荐