QT 配置Opencv+gdal心得

2023-05-16

本人研究僧一枚,老师给了使用QT开发遥感图像相关程序的课题,完全从零开始学习,查阅了许多的资料,过程里东拼西凑,碰壁无数。所以我就想写一些学习的心得体会,给自己复习使用,如果能够帮助到别人,那当然是最好的了。

废话不多说,进入正题。Opencv是计算机视觉很好用的库,gdal是遥感领域常用的库,鼎鼎大名的Arcgis就是基于gdal开发出来的。利用python我们可以简单的pip install,之后就可以简单的import了。但基于C++的QT就办不到了,这时候就需要自己去官网下载windows版本的源码,使用Cmake去编译,这个过程无比复杂,还会遇到很多错误,所以建议是下载已经编译好的库直接使用。

有了库之后,如何去使用也是很重要的。一般你得到的编译完成的库有三个部分是最重要的(这个很多文章都没有讲到,我自己探索了好久),将决定你是否能在之后的开发中使用这些库,以gdal为例,如图所示:

lib文件夹包含gdal的静态库文件。include文件夹,里面是你在开发过程中所调用的那些头文件。当你需要在QT中使用它们时,只需要右键你的项目-添加库-选择外部库,库文件目录选择lib文件夹下的gdal静态库文件,包含路径选择include文件夹,如下所示。

当然还没结束,你还需要为你的工程提供动态库,否则程序会报错。bin中以.dll结尾的是程序运行时候需要的动态库,可以看到在bin文件夹中有3个.dll文件,分别是gdal302,gdal的前置库proj_6_3和sqlite3,这些dll文件需要拷贝到你建立的QT项目文件夹中,如果你没有特别设置,项目文件就是我的电脑-文档-build-xxxxx-Desktop_x86_windows_msvc2019_pe_64bit-Debug文件夹。

     

到此,gdal库配置完成就可以开心得使用它了,用同样的方法可以配置opencv。比较有意思的是,当你去网上搜索使用opencv的教程时候,你会发现大家都有如下蓝线勾画的代码。其实如果你去看win版本的opencv库文件结构,你就会明白这句话的意思是找include文件夹下的opencv2文件夹下的opencv.hpp头文件。虽然这个在大神看来很简单,但是这个细小的点却让我终于明白头文件,静态库和动态库如何去配置的。至于这三者之间的具体关系和作用,大家可以自己去度娘,有很多大神讲得非常清楚。

 


后来又配置了vs2017搭配qt的编译环境,在vs2017中配置方式也很类似,具体步骤如下,该步骤来自VS中添加第三方库及相对路径设置-阿里云开发者社区 (aliyun.com):

对于一些第三方的SDK,一般会包含头文件(*.h),静态库文件(*.lib)和动态库文件(*.dll)。

1.  文件位置:为了提高程序的可移植性,将第三库放在解决方案(*.sln)或者工程(*.vcxproj)文件所在的文件夹下。而不要放在其他地方,比如放在D:\某个位置,这样的话,程序在别的电脑上可能就无法运行了。

2.  头文件:在工程属性->VC++目录->包含目录中添加头文件目录 ; 使用相对路径添加。

3. 静态库文件:在工程属性->VC++目录->库目录中添加库文件目录;使用相对路径添加。

4. 链接库配置:在工程属性->链接器->输入->附加的依赖项;将相关的lib文件名写入即可。

5. 动态库配置:将所需的dll文件放在对应的realease和debug的文件夹下或者直接将dll文件放在工程文件夹下。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

QT 配置Opencv+gdal心得 的相关文章

随机推荐

  • 「STM32入门」TIM输出比较

    输出比较的简介 输出比较英文写作OC Output Compare 输出比较可以通过比较CNT和CCR寄存器值的关系 xff0c 来对输出电平进行置高或者置低或者翻转的操作 xff0c 用于输出一定频率和占空比的PWM波形常见应用例子如 x
  • 「数字信号处理」MATLAB设计 双音多频拨号系统

    前言 实验目的 xff1a 用Matlab模拟实现双音多频拨号系统 输入 xff1a 一串数字模拟电话号码 输出 xff1a 检测出的电话号码 Matlab版本 xff1a 2021b 系统 xff1a MacOS 实验方法 xff1a 查
  • 「STM32入门」TIM定时中断

    定时器的简介 定时器可以对输入的时钟进行计数 xff0c 并在计数值达到设定值时触发中断 xff0c 在中断内可以执行中断事件不仅具备基本的定时中断功能 xff0c 而且还包含内外时钟源选择 xff0c 主从触发模式 xff0c 输入捕获
  • 二极管反向恢复过程详细解析

    二极管反向恢复过程 xff0c 现代脉冲电路中大量使用晶体管或二极管作为开关 或者使用主要是由它们构成的逻辑集成电路 而作为开关应用的二极管主要是利用了它的通 电阻很小 断 电阻很大 特性 即二极管对正向及反向电流表现出的开关作用 二极管和
  • 性能优化总结

    性能优化关注点 从图中可以看出 xff0c 性能优化的主要关注 xff1a CPU 内存 磁盘IO 网络IO等四个方面 性能指标 每个关注点都有对应的指标 xff0c 吞吐率 响应时间 QPS IOPS TP99 资源使用率是我们经常关注的
  • Python:优先队列的使用及类的自定义比较函数

    Priority queue模块 该模块定义的优先级队列 xff0c 其内部使用了 heapq 模块 xff0c 所以它的时间复杂度和heapq是相同的 当一个对象的所有元素都是可比较的时 xff0c 默认情况下是根据队列中的对象的第一个元
  • 「STM32入门」USART串口通信

    通信 通信的目的 xff1a 将一个设备的数据传送到另一个设备 xff0c 扩展硬件系统 通信协议 xff1a 制定通信的规则 xff0c 通信双方按照协议规则进行数据收发 STM32常见的通信协议 本文将介绍USART 概念解释 TX R
  • 「数字信号处理」采样过程与内插恢复完整图解

    内插与采样的关系 来源 xff1a 数字信号处理 采样与内插 DSP期末知识点题型4 哔哩哔哩 bilibili
  • 配置vscode作为STM32代码的编辑器(替代keil5)。实现:代码自动补全, 编译,下载。nRF52也可以编译。

    STM32CubeMX新建好工程在工程根目录新建文件夹 vscode在 vscode 文件夹内新建文件c cpp properties json 34 configurations 34 34 name 34 34 STM32 34 任意的
  • Python中的字典

    1 字典概念 Python内置的数据结构之一 xff0c 与列表一样是一个可变序列 以键值对的方式存储数据 xff0c 字典是一个无序的序列 xff08 列表是有序的 xff09 字典通过计算key的hash值确定存储位置 xff0c 所以
  • docker中使用cuda

    需要注意的事项 1 注意应用NVIDIA在docker hub上提供的镜像 本次使用的是 nvidia cuda 10 1 cudnn7 devel ubuntu18 04 2 在宿主机安装 nvidia docker2 3 运行时 要加
  • Mysql8.0 忘记密码怎么办

    Mysql8 0 忘记密码怎么办 今天晨雨帮身边小伙伴解决了mysql8 0无法连接上的问题 中间碰到的一些问题和大家分享一下 跳过密码登录时不成功修改密码时不成功navicat连接时报 2000的问题 1 首先先停止mysql服务 可通过
  • Kurento实战之二:快速部署和体验,Java笔试题编程题

    GitCommit 269548fa27e0089a8b8278fc4fc781d7f65a939b runc Version 1 0 0 rc92 GitCommit ff819c7e9184c13b7c2607fe6c30ae19403
  • QT使用render时pixmap背景不为透明的解决办法

    当我们需要将一个界面绘制成图片时 xff0c 就需要使用到render方法 QPixmap pixmap pwidget gt size pwidget gt render amp pixmap 如果pwidget背景为透明时 xff0c
  • 【iOS】—— 高德地图SDK基础使用

    最近稍微学了学iOS调用高德的SDK xff0c 就随便做做笔记 注意 xff1a 本篇博客基于高德地图SDK的3D地图来写的 xff0c 若使用的是2D地图可能有的方法可能有所不同 xff0c 比如自定义定位蓝点之类的 一 准备工作 xf
  • 如何做代码Code Review

    预防胜于治疗 xff0c 研究表明高效的 Code Review 可以发现70 90 的 bug xff0c Review 作用如下 xff1a 提高团队代码标准 xff0c 所有人共享同一套标准 xff0c 阻止破窗效应 推动团队合作 r
  • 【iOS】—— 浅谈UISearchController

    UISearchController是iOS的一个系统的搜索控件 xff0c 在平时我们输入信息的时候会出现相应的联想搜索的内容 xff0c 然后通过UITableView展示到搜索框的下面 xff0c 供我们选择 原本还想用UITextF
  • Linux Shell中的正则表达式

    Linux Shell中的正则表达式 正则表达式是什么正则表达式通配符 cut命令awk命令sedsort排序命令wc统计命令 正则表达式是什么 正则表达式是用于描述字符排列和匹配模式的一种语法规则 它主要用于字符串的模式分割 匹配 查找及
  • 【Linux】刚烧录完(相当于是第1次连接),VNC树莓派无法连接

    文章目录 解决方法如下 xff1a 1 在Terminal中输入 96 vncserver 96 2 在Terminal中再输入 96 sudo raspi config 96 3 输入连接即可 刚烧录完 xff0c 然后用 ifconfi
  • QT 配置Opencv+gdal心得

    本人研究僧一枚 xff0c 老师给了使用QT开发遥感图像相关程序的课题 xff0c 完全从零开始学习 xff0c 查阅了许多的资料 xff0c 过程里东拼西凑 xff0c 碰壁无数 所以我就想写一些学习的心得体会 xff0c 给自己复习使用