环境:Ubuntu18.04.6

Qt:4.5.2-3ubuntu

OpenCv:4.5.5

Cmake:3.12.2

一、获取OpenCv编码

从opencv官网网址下载opencv源Releases - OpenCV

二、在自己linux下搭建OpenCv编译环境

1.创建一个opencv文件夹,如下所示:
 mkdir opencv

2..把下载好的OpenCV压缩包移动到新创的opencv文件夹中解压,可以在终端用 ‘tar’ 命令解压或者直接点压缩包提取

3.在opencv文件夹下再创建两个文件夹 build和install

mkdir build install
4.安装Cmake和Cmake-gui以及所依赖的库(若出错可以思考一下是否执行了sudo apt update与sudo apt upgrade)

sudo apt-get install cmake-gui
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install cmake cmake-qt-gui cmake-curses-gui
5.进入build文件夹下编译Cmake 

cd /opencv/build
cmake-gui
会出现cmake配置界面

6. 配置cmake工具

如下图去设置路径第一个路径是你解压出来的opencv文件夹,第二个路径是咱们自己创的build文件夹。

路径设置完后勾选 Advanced,点击Configure会出现如下界面,选择Unix Makefiles后选择Use default native compilers,然后点击Finish。

 

 在CMAKE_BUILD_TYPE 值处输入RELEASE再在 CMAKE_INSTALL_PREFIX 处指定安装目录, 我们在上面已经新建了 install 安装目录。我们直接指定到该目录即可。如果不指定,它会默认安装到 Ubuntu 系统目录/usr/local 下。

 

  等这个步骤构建完,我们先点击 Configure,再点击 Generate就可以生成了。成功界面如下,且上面的空间没有飘红

三、编译Opencv源码

修改完后,切换至build文件夹,可以得到如下图示,然后去make,在make完成之后,输入sudo make install来安装opencv源码,会安装在刚才指定的路径下。

 

四、配置opencv环境变量

环境配置

cd /etc/ld.so.conf.d/
sudo gedit opencv.conf
#创建文件后插入 /home/wang/opencv/install 保存并退出
sudo ldconfig
配置bash 

sudo gedit /etc/bash.bashrc
#在末尾添加
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/home/wang/opencv/install/pkgconfig export PKG_CONFIG_PATH 
#保存退出
source /etc/bash.bashrc
sudo updatedb
五、Qt下Opencv的环境搭建 

打开Qt去创建一个项目,如下图所示

在test.pro后去添加路径,如下图

 

添加如下路径,指定了头文件的位置与动态链接库的位置。
/home/ge/opencv/install即为自己指定的安装opencv的目录

INCLUDEPATH +=  /home/ge/opencv/install/include\
                /home/ge/opencv/install/include/opencv4 \
                /home/ge/opencv/install/include/opencv4/opencv2
 
LIBS += /home/ge/opencv/install/lib/libopencv_highgui.so \
        /home/ge/opencv/install/lib/libopencv_highgui.so.405 \
        /home/ge/opencv/install/lib/libopencv_core.so    \
        /home/ge/opencv/install/lib/libopencv_imgproc.so \
        /home/ge/opencv/install/lib/libopencv_imgcodecs.so
然后可以添加如下代码做测试:

#include <opencv2/opencv.hpp>
#include <iostream>
 
using namespace cv;
using namespace std;
 
int main() {
 
    Mat src = imread("/home/ge/图片/lena.png");
    namedWindow("输入", WINDOW_FREERATIO);
    if (src.data != NULL)
        imshow("输入", src);  //图像必须是8位的
    else
        cout << "error!!" << endl;
    waitKey(0);
    destroyAllWindows();
    return 0;
}
 其中Mat src = imread("/home/ge/图片/lena.png");该代码中imread的参数是图片的位置;
————————————————
版权声明:本文为CSDN博主「Amnesia√」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_52514151/article/details/124078900

 

Logo

更多推荐