环境准备:
Ubuntu18(64位)
Qt5.9(安装在Ubuntu18)
opencv3.3.zip
Ubuntu18和Qt5.9的安装在这里就不介绍了,直接进入正题
配置编译
1、首先确保安装好
gtk:跨平台图形用户界面库(GUI)GTK+ 的包装。
sudo apt-get install libgtk2.0-dev
或者
把opencv源码,/modules/highgui/src/windows.cpp 文件第583行和654行注释掉!
583 行: CV_NO_GUI_ERROR("cvshowImage")
654行:CV_NO_GUI_ERROR("cvWaitKey")
不然程序运行时会提示如下让先安装gtk+2.x之类的错误,应该是没有显示屏显示的原因。
“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”。
pkg:检索系统中安装库文件的信息,典型的是用作库的编译和连接。
sudo apt-get install pkg-config
cmake:构建并维护项目代码,产生可移植的makefile。
sudo apt-get install cmake-qt-gui
2、opencv解压
unzipe opencv3.3.0zip
3、编译
3.1 载入opencv
打开Qt-文件-打开文件或项目,选择解压后opencv3.3.0目录下的CMakeists.txt
(cmake的所有语句都写在一个CMakeLists.txt的文件中,CMakeLists.txt文件确定后,直接使用cmake命令进行运行,但是这个命令要指向CMakeLists.txt所在的目录,cmake之后就会产生我们想要的makefile文件,然后再直接make就可以编译出我们需要的结果了。)
点击open,开始载入
载入成功
3.2配置编译
3.2.1Cmake
点击项目,在CMake下找到CMAKE_INSTALL-PREFIXXIU修改存放编译后库文件和头文件的目录
修改后点击Apply Configuration Changes,粗体变斜体即生效。
3.2.2构建
点击详情,选择install
3.3.3编译
点击左下角最下面的锤子,开始编译
编译成功。
4、测试
4.1添加环境变量
使用opencv库之前先要添加环境变量
跳转到/etc/ld.so.conf.d/目录
新建opencv.conf
cd /etc/ld.so.conf.d
vim opencv.conf
添加安装编译好的opencv路径
usr/local/opencv3.3.0/opencv3.3.0/lib
保存之后查看
sudo ldconfig -v
有这些opencv的库文件则添加成功。
4.2 Qt测试
新建Qt工程
在.pro文件中添加opencv路径
INCLUDEPATH += /usr/local/opencv3.3.0/opencv3.3.0/include \
/usr/local/opencv3.3.0/opencv3.3.0/include/opencv \
/usr/local/opencv3.3.0/opencv3.3.0/include/opencv2 \
LIBS += /usr/local/opencv3.3.0/opencv3.3.0/lib/libopencv_*
main.cpp中
#include "mainwindow.h"
#include <QApplication>
#include "opencv2/opencv.hpp"
#include "cv.h"
using namespace cv;
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
Mat image=imread("/home/shijiu/Qt_program/test1/test.jpg");
imshow("test",image);
waitKey(0);
return a.exec();
}
运行成功: