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