[嵌入式embed][Qt]Qt5.12+Opencv4.x+Cmake4.x_用Qt编译linux-Opencv库 & 测试
-
- 前文:
- 准备环境
- 安装qt-opencv必备库
- [git-clone opencv库](#git-clone opencv库)
- 编译opencv库
- 特殊:opencv编译的include,编译出来后多嵌套了一层文件夹,手工处理下改为include/opencv2
- 测试demo
- 百度云
前文:
[嵌入式embed][Qt]Qt5.12+Opencv4.x+Cmake4.x_用Qt编译Windows-Opencv库
[嵌入式embed][Qt]Qt5.12+Opencv4.x+Cmake4.x_测试Qt编译的opencv4.x的库
准备环境
ubuntu20.04
安装qt-opencv必备库
sudo apt install build-essential cmake libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt install openjdk-11-jdk python3 python3-pip
git-clone opencv库
git clone https://github.com/opencv/opencv

编译opencv库
其中/opt/opencv 就是我自定义放的位置
cd opencv
mkdir build && cd build
cmake -D CMAKE_INSTALL_PREFIX=/opt/opencv ..
make -j4
sudo make install

build成功,开始执行sudo make install

make install 成功

特殊:opencv编译的include,编译出来后多嵌套了一层文件夹,手工处理下改为include/opencv2
测试demo
新建项目
QOpencv3.pro

QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
CONFIG += c++11
# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
SOURCES += \
main.cpp \
mainwindow.cpp
HEADERS += \
mainwindow.h
FORMS += \
mainwindow.ui
# linux设置 OpenCV 路径
OPENCV_INSTALL_PATH = /opt/opencv
# linux包含头文件路径
INCLUDEPATH += $$OPENCV_INSTALL_PATH/include
INCLUDEPATH += $$OPENCV_INSTALL_PATH/include/opencv2
# linux添加 OpenCV 库文件路径
LIBS += -L$$OPENCV_INSTALL_PATH/lib
# linux链接需要的 OpenCV 库(根据项目实际使用的模块调整)
LIBS += -lopencv_core \
-lopencv_imgproc \
-lopencv_highgui \
-lopencv_imgcodecs \
-lopencv_videoio
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
main.cpp

#include "mainwindow.h"
#include <QApplication>
#include <opencv.hpp>
using namespace cv;
//opencv4.x版本
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
//展示一张图片
Mat myimage = imread("1.jpg");
imshow("Image", myimage);
//等待10秒钟
waitKey(10);
MainWindow w;
w.show();
return a.exec();
}
将项目复制到linux目录中:
qmake
make

export LD_LIBRARY_PATH=/opt/opencv/lib:$LD_LIBRARY_PATH & ./QOpencvV3
运行成功
