一、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
#include
#include
#include
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/
测试的程序比较简单,如果能正常执行,则以上的安装和配置过程即已成功。