稍不简易视频播放器

最近忙着把OpenCV2 GUI 包装得不亦乐乎。从5天前第一次实现了视频播放器,到现在把各个组件不断地解耦,封装操作。因为是第一次使用继承特性在实践上,且第一次学画UML图,没什么经验,最后本来设想得很整洁的结构迅速变乱,最后只得画繁为简,只实现需要的功能:单摄像头2D平面图像 8U 深度 RGB 图像处理与显示,现在得到的结果大致是下面的样子:

Design of Video Processor based on OpenCV2 GUI

今后有时间进一步 document 封装实现的一些 C++11 fancy 功能(爱死 initializer_list 了!)。关于尚未实现的功能,目前的计划如下:

  1. cv::waitKey 功能太弱,考虑在外部实现 timer 功能支持视频多路播放, waitKey 则由一个线程调用,负责处理键盘响应。
  2. OpenCV 的鼠标回调函数似乎比 waitKey 要好一些,至少可以绑定特定窗口,计划使用它本身的 cv::SetMouseCallbac 实现鼠标消息处理。
  3. 关于算法参数的控制面板,目前的方案有两个,一是在每个算法函数对象内部定义 static 的回调函数 bundle,重绘窗口时读取 bundle 并依次创建相关部件; 二是分别为每个算法函数对象创建对应的控制面板类,并在算法类中定义到控制面板类的类型转换函数,使得算法可以像组件一样被装载到一个窗口类的节点中。具体使用哪个方法还需要进一步考察。

因为接下来的工作需要进一步阅读手册,所以现在的重心重新回到《学习OpenCV C++ API》系列上,边学边做改进。

原文链接: https://www.cnblogs.com/liuyangnuts/archive/2013/03/09/2951993.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    稍不简易视频播放器

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/80099

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月9日 下午7:24
下一篇 2023年2月9日 下午7:25

相关推荐