笔记:OpenCV3和Qt5 计算机视觉应用开发(二)
目标:学习《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 界面的设置,可正常显示。
系统设置->外观->行为->显示窗口菜单,
默认为“在菜单栏”,修改为“在窗口的标题栏”

练习代码
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律