Linux环境中QT下配置OpenCV
参考参考
环境: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
更多推荐
所有评论(0)