当前位置: 首页 > news >正文

[嵌入式embed][Qt]Qt5.12+Opencv4.x+Cmake4.x_用Qt编译linux-Opencv库 测试

[嵌入式embed][Qt]Qt5.12+Opencv4.x+Cmake4.x_用Qt编译linux-Opencv库 & 测试

    • 前文:
    • 准备环境
    • 安装qt-opencv必备库
    • git-clone opencv库
    • 编译opencv库
    • 特殊:opencv编译的include,编译出来后多嵌套了一层文件夹,手工处理下改为include/opencv2
    • 测试demo
      • 新建项目
      • QOpencv3.pro
      • main.cpp
    • 百度云

前文:

[嵌入式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

新建项目

用Qt编译Windows-Opencv库

QOpencv3.pro

在这里插入图片描述

QT       += core guigreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsCONFIG += 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.0SOURCES += \main.cpp \mainwindow.cppHEADERS += \mainwindow.hFORMS += \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
运行成功

在这里插入图片描述

百度云

在这里插入图片描述
Qt项目(linux)+环境安装包

http://www.dtcms.com/a/365172.html

相关文章:

  • Linux 用户的 Windows 改造之旅
  • linux命名管道的使用
  • 关于linux数据库编程——sqlite3
  • Unity 中 打包 assetsBundle
  • C语言字符函数和字符串函数(1)
  • 《网络安全实战:CC攻击(应用层)与DDoS攻击(网络层)的底层逻辑与防御体系》​
  • 基于SpringBoot+Vue开发的环境保护监督管理网站
  • 如何通过控制台查看向量检索服务使用数据
  • Vue Router原理及SPA页面刷新解析
  • 融云:当我们谈论 AI 重构业务时,我们到底在谈论什么
  • SAM TTS网页官网入口 – 在线版微软tts在线语音合成助手
  • 【TRAE调教指南之MCP篇】FastMCP:快速制作自己的MCP服务
  • 对锁的总结
  • Agent 热潮遇冷?Manus 为何仍是 “版本神”
  • 充电枪结构设计-经验总结
  • 具身智能让人形机器人 “活” 起来:懂语言、能感知、会行动,智能进化再提速
  • docker安装rabbitmq(4.1.4-management)
  • 客户分层是什么?提升企业运营效率
  • 【python】运算符及语句
  • 数据结构:栈和队列(上)
  • 低代码革命遇瓶颈?这个“套娃神技“才是破局关键!
  • 【FastDDS】Layer DDS之Domain ( 05-Creating a DomainParticipant)
  • 关于linux网络编程——3
  • 扫地日记:有鹿巡扫机器人在景区被人类“调戏”的365天
  • ansible总结2
  • GIS大学课程表都长啥样?几个地信专业的大学一周课程表
  • 如何评价2025年数学建模国赛?
  • (二)文件管理-基础命令-pwd命令的使用
  • 高并发数据写入场景下 MySQL 的性能瓶颈与替代方案
  • “我店”积分模式的可持续性拷问:短剧能否撑起长期消泡沫需求?