繁体   English   中英

如何获得作为摄像机输入的视频播放?

[英]How to get playing video as a camera input?

我想从正在播放的实时视频中检测特定对象,因此我将帧提取部分(opencv,c ++)作为一部分实现,并将其他检测功能(emgucv,c#)作为另一部分实现。 为了集成这些部分,我在C#项目中添加了c ++项目的exe文件,并且运行良好。 但是现在我想离线测试这个项目。 这意味着我想通过使用保存在硬盘中的视频来测试该项目。 在集成之前,c ++项目可以在联机和脱机情况下执行。 但整合后只能在在线条件下执行。 请帮助我解决这个问题。

您可以随时尝试使用Magic Camera,Fake Webcam之类的网络摄像头模拟器(或只是在Google上搜索,互联网上有一堆软件),它们会像播放视频一样来自您的网络摄像头。

但是,您可能还想考虑重新组织软件设计,以便它既可以接受流又可以接受文件输入-一旦将处理逻辑与捕获逻辑分开,它应该非常简单。

实时摄像机基本上是图像帧的异步源。 大概您将回调函数传递给了相机API,并且该回调是在新帧可用时触发的吗? 您可以以一种直截了当的方式模仿此功能。

编写一个打开视频文件的函数,然后循环运行...循环的每次迭代,它都会从文件中获取一个帧,将其适当打包,然后调用您的回调函数。 然后它可以休眠几毫秒,然后重复该循环。 在其自己的线程中运行此函数。 从回调的角度来看,它与实时摄像机没有什么不同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM