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

本文介绍了使用Qt5和OpenCV3进行计算机视觉应用开发的学习过程,包括信号与槽机制、Qt对象树内存管理,以及在创建项目和处理imwrite错误中的问题。重点讲解了如何创建插件、在Linux中处理菜单栏显示问题,并提供了练习代码链接。
摘要由CSDN通过智能技术生成

目标:学习《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

  • 18
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值