> 文章列表 > 《OpenCV3和Qt5计算机视觉应用开发》学习笔记

《OpenCV3和Qt5计算机视觉应用开发》学习笔记

《OpenCV3和Qt5计算机视觉应用开发》学习笔记

  • Qt Creator中使用opencv

在.pro文件中添加

INCLUDEPATH += D:\\MajorSoftware\\opencv\\opencv\\build\\include
LIBS += D:\\MajorSoftware\\opencv\\opencv\\mingw_build\\lib\\libopencv_*.a

《OpenCV3和Qt5计算机视觉应用开发》学习笔记

  • 一个插件就是一个简单的库,如.dll,可以在运行时加载和使用插件,以处理特定的任务。不是独立运行,而是依赖于使用它的应用程序。接口用来实现程序和插件之间的对话,等价的是纯虚函数类。一开始所有必须的函数都要包含在接口中。
  • 虚析构函数可以避免内存泄露
  • Qt Creator与工程项目内容不同步时,手动运行qmake
Q_OBJECT //存于所有Qt类中,以允许Qt特定的功能可用
Q_PLUGIN_METADATA(IID "com.amin.cvplugininterface")//需要一个插件的源代码中刚好出现一次,用于添加关于插件的元数据
Q_INTERFACES(CvPluginInterface)//用于声明插件中实现的接口
  • VideoCapture可以读取(存储在磁盘上的文件、捕获设备、相机或一段网络视频流)视频或图像序列。
VideoCapture video;
video.open("C:/a.mp4");
if(video.isopened()){Mat frame;while(true){if(video.read(frame)){//process the frame}else{break;}}
}
video.release();
  • 在Qt中使用视频流时,为防止GUI不更新,程序崩溃,需要在循环中添加以下代码,确保GUI和其他线程也会被处理
aApp->processEvents();
  • QGraphicsScene提供了用于操纵多个图形对象元素的所有方法
  • QGraphicsItem是场景中绘制的所有对象元素的基类,它包含各种方法和属性来处理每一个对象元素的绘制、与其他对象元素的冲突检测、鼠标单击以及其他事件。
函数名 函数作用
alignment函数和setAlignment函数 设置视图中场景的对齐方式
dragMode函数和setDragMode函数 获取和设置视图的拖动模式
isInteractive函数和setInteractive函数 允许检索和修改视图的交互行为
optimizationFlags函数、setOptimizationFlags函数、renderHints函数、setRenderHints函数、viewportUpdateMode函数和setViewportUpdateMode函数 用来获取和设置与视图的性能和渲染质量有关的参数
dragMode设置为RubberBandDrag模式,那么rubberBandSelectionMode函数和setRubberBandSelectionMode函数 用来设置视图的对象元素选择模式
sceneRect函数和setSceneRect函数 用于获取和设置视图中场景的可视化区域
centerOn函数 用来确保一个特定的点或对象元素位于视图的中心
ensureVisible函数 将视图滚动到一个特定的区域(具有给定的边界)以确保它在视图中。该函数适用于点、矩形和图形对象元素。
fitInView函数与centerOn和ensureVisible十分类似 同在于:该函数还可以缩放视图的内容以适应视图,并有一个给定的宽高比处理参数
itemAt函数 检索视图中特定位置的对象元素

石膏模具网