首页 > 其他分享 >笔记:OpenCV3和Qt5 计算机视觉应用开发(二)

笔记:OpenCV3和Qt5 计算机视觉应用开发(二)

时间:2024-04-16 18:56:53浏览次数:26  
标签:插件 Qt5 Qt OpenCV 接口 OpenCV3 笔记

目标:学习《OpenCV3和Qt5 计算机视觉应用开发》,记录总结学习过程。

第2章 创建第一个Qt+OpenCV项目

学习总结1,信号与槽机制。2,Qt对象树机制实现自动内存管理。3,问题:程序异常结束。
OpenCV Error: Unspecified error (could not find a writer for the specified extension) in imwrite_, file /home/bob/work/res/opencv-3.3.0/modules/imgcodecs/src/loadsave.cpp, line 604
terminate called after throwing an instance of 'cv::Exception'
  what():  /home/bob/work/res/opencv-3.3.0/modules/imgcodecs/src/loadsave.cpp:604: error: (-2) could not find a writer for the specified extension in function imwrite_

程序异常结束。
解决方法:输入完整文件名如果如下输入,则会报错如果输入完整文件名,则正常运行

第3章 创建完整的Qt+OpenCV项目

学习总结

1,模块化方式构建应用程序。2,样式表、多语言、插件。
创建插件,要先创建接口,接口就是只包含纯虚函数的类。
插件类要继承自该接口。插件类存储在共享库中,可在应用程序运行时进行加载。
1,定义一组接口(只有纯虚函数的抽象类),使用Q_DECLARE_INTERFACE()宏在Qt元对象系统中注册该接口;
2,定义一个插件类,需要同时继承自QObject类和该插件所提供功能对应的接口类;
使用Q_PLUGIN_METADATA()宏导出该插件;
使用Q_INTERFACES()宏在Qt的元对象系统中注册该接口;
3,修改.pro文件构建该插件
CONFIG += plugin
4,生成插件库文件

通过插件进行扩展程序功能要进行以下几步:
1,在应用程序中使用QPluginLoader来加载插件;
2,使用qobject_cast()来测试插件是否实现给定的接口;

3,问题:Linux系统中程序菜单栏不显示,全局放大后可显示菜单栏。解决方法:更改Linux 界面的设置,可正常显示。系统设置->外观->行为->显示窗口菜单,默认为“在菜单栏”,修改为“在窗口的标题栏”
练习代码https://download.csdn.net/download/VistaTech/89017940?spm=1001.2014.3001.5503

标签:插件,Qt5,Qt,OpenCV,接口,OpenCV3,笔记
From: https://www.cnblogs.com/pudding-plus/p/18138953

相关文章

  • 笔记:J1939协议之DM1
    目标:学习SAE1939-73中的DM1,尤其是多包故障的传输规则一、基本概念SAE1939-73即CAN总线J1939协议的应用层-诊断符号缩写的含义DM1诊断信息1,当前故障码DM2诊断信息2,历史故障码DM3诊断信息3,历史故障码的清除/复位DM4诊断信息4,停帧参量DM5诊断信息5,诊断准备就绪DM6诊断信......
  • 笔记;超声波倒车雷达方案分析(一)
    需求:搜集超声波倒车雷达方案,了解基础知识和开发要点。一、基础概念1.1测量原理超声波发送探头向外发送超声波,超声波在向外扩散过程中遇到障碍物会产生反射波,通过接收探头对反射波进行接收,采集发送和接收到超声波的时间差来计算障碍物的距离。常用探头工作频率有40KHz,48KHz以及58......
  • 后缀数组 学习笔记
    理论知识详见OIWiki。模板后缀排序一切有关后缀数组问题的必备板子。求后缀数组模板题,OIWiki有详解。点击查看代码#include<bits/stdc++.h>#defineintlonglong#defineendl'\n'#definesortstable_sortusingnamespacestd;constintN=1e6+10;template......
  • nova rescue原理笔记
    说明:场景示例,虚机的启动盘的一个文件被误删除了导致无法再次启动了,或者admin的密码忘记了。Rescue功能提供一个解决这类问题的手段。备注:不能rescue一个volume-backedinstance前提默认情况下,实例从提供的救援映像或新的映像启动原始实例映像的副本(如果未提供救援映像)。......
  • FPGA入门笔记013——嵌入式块RAM使用之FIFO
    1、FIFO概述​ FIFO(FirstInFirstOut),即先进先出。FPGA或者ASIC中使用到的FIFO一般指的是对数据的存储具有先进先出特性的一个缓存器,常被用于数据的缓存或者高速异步数据的交互。它与普通存储器的区别是没有外部读写地址线,这样使用起来相对简单,但缺点就是只能顺序写入数据......
  • React 学习笔记:刚开始接触
    目录前言相关链接个人对React和Vue的初步感觉React和Vue官方态度的区别ReactVue新建第一个React项目复制官方的文档代码教程:井字棋游戏React个人使用体验返回html修改样式作用域React的常用组件ReactDeveloperToolsReact开发工具React框架推荐总结前言之前有断断续续学过一段......
  • markdown语法笔记
    markdown语法笔记目录markdown语法笔记一、标题1.Setext风格的标题定义方式2.Atx风格的标题定义方式3.小结二、段落1.正文2.段落3.不分段换行4.缩进、空白行5.小结三、粗体与斜体四、文本高亮五、下划线、分割线与删除线六、列表1.普通列表2.TODO列表七、引用八、行......
  • 初级英语学习笔记01
     1.Thisis 和Isthis 交换使用 当我们指向一些非特定的物体和人时,使用冠词“a”如果是位置,大小,味道,颜色等,我们使用冠词“the”where在哪里who 谁what 什么onthe ISNOT否定NOISNOT isn'tIN ......
  • day11_我的Java学习笔记 (static_静态成员变量+静态成员方法_工具类、代码块_静态代码
    0.面向对象进阶1.static静态关键字1.1static是什么,static修饰成员变量的用法Java成员变量成员方法Python类(对象)属性类(对象)方法static修饰成员变量的应用:在线人数统计1.2static修饰成员变量的内存原理1.3static修饰成员方法的基本......
  • move_base学习笔记
    `move_base`提供了多种API,用于与导航堆栈进行交互。以下是一些主要的API及其作用:1.**ActionAPI**:-**MoveBaseAction**(`move_base_msgs/MoveBaseAction`):这是`move_base`的主要API,用于发送目标位置给机器人,并获取机器人的导航状态。用户可以发送一个包含目标位置和姿态......