b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

Directshow虚拟摄像机示例代码解释

电脑杂谈  发布时间:2020-04-02 16:07:11  来源:网络整理

directshow实例_ffdshow directshow_陆其明directshow

本文仅介绍此源代码的一般组成以及如何对其进行修改,因为我对此一无所知. 我只是使用QQ呼叫虚拟相机来读取我自己的视频或图片并将其显示给他人. 就是这样.

1,示例代码: QQ可以使用Directshow来实现虚拟摄像机(win10 + vs2013,c ++代码)如果没有积分并且需要代码,可以通过huqiaoping23@qq.com给我发送电子邮件<

2,源代码描述

此源代码包含DirectShow库文件. 相关的配置文件也保存在项目中,无需安装DirectShow或DirectX SDK即可直接运行.

此源代码是用于注册和注销虚拟摄像机的源代码. 运行它可以使QQ视频以随机数的形式显示每个像素的图片(其他功能可以由您自己设计和编写以进行修改). 如下图所示

有关测试方法,请参考win10 + VS2013下载DirectShow相关示例代码和DirectShow库文件调用3,运行测试并进行调整

3. 代码解释

陆其明directshow_directshow实例_ffdshow directshow

结构说明:

文件Filter.cpp和Filter.h是虚拟摄像机的特定配置信息,例如向虚拟摄像机提供了哪些数据,如果要更改代码和数据以读取不同的内容,请查看这两个文件;

文件Dll.cpp和Dll.def是用于注册和注销虚拟摄像机的功能. 您需要在此处查看DirectShow的工作方式.

文件DibHelper.h和DibHelper.cpp是获取计算机屏幕像素的函数. 如果您希望QQ视频的另一端查看计算机的实时图片,则可以使用此功能,因为原始代码功能是让QQ视频对方看到其计算机屏幕并使用它们,但是当前代码不会读取计算机屏幕,而是直接分配值,向其中写入随机数,因此请勿浏览这两个文件.

阅读代码

从Dll.def读取

directshow实例_ffdshow directshow_陆其明directshow

此项目生成库文件VCam.ax,该文件类似于我们通常的.dll文件,而不是诸如.exe之类的可执行文件,因此无法像以前那样进行调试. 我不知道该库文件有哪些调试方法. ,因此,如果您输入有误,则必须通过目视检查.

尝试搜索与项目中的虚拟摄像机相关的DllMain,DllRegisterServer,DllUnregisterServer函数. 有关具体功能功能,请参阅官方网站上的介绍. 链接在这里给出,我不会翻译.

DLL函数

Dll.def和Dll.cpp彼此对应,这就是DirectShow的使用方式. (其中g_wszFilterName是虚拟相机的名称,您可以尝试将其更改为您自己的名称)

特定的虚拟摄像机配置信息(即Filter.cpp和Filter.h)如何进入配置,即与Dll.cpp和Dll.def的关系如何,请自己搜索CLSID_VirtualCamera <

Filter.cpp和Filter.h要注意的重要功能是FillBuffer. 该功能是填写数据的功能. 在此示例中,直接填充了随机数. 因此,QQ视频中的呼叫看起来像一堆不断变化的灰度. 东东.

如果要查看如何配置和编写过滤器,请从CVCam类开始.

4,尝试使用虚拟相机播放自己的照片(尝试自己修改示例代码)

directshow实例_陆其明directshow_ffdshow directshow

说明:

上图中的带框部分是写入数据的部分,cbData是大小,pData是特定数据directshow实例,这里是随机数. 那就是看自己的照片directshow实例,填写数据,仅此而已.

我以前只是使用opencv来阅读图片和视频,而且我不知道如何以其他方式阅读它,所以我直接使用了opencv.

我的环境是opencv3.0,我不会谈论环境配置,其他opencv版本是相同的.

为了将来将其更改为视频,我编写了一个函数,将Mat图像读取到缓冲区中,如下所示

注释掉上图中的红色框. 用opencv阅读图片后,直接调用此函数. 当然,此功能用于彩片,如果您是灰度的,则有所不同.

ffdshow directshow_陆其明directshow_directshow实例

您会注意到数据是向后复制的. 这是因为在存储数据时位图和Mat有所不同. 另外,我似乎并不关心这个问题. 看起来还是可以的.

代码修改和测试结果:

可以看出,当我用计算机登录QQ进行视频录制时,左右看上去正常,但是对方收到的图片却相反,因此我对读取Mat的功能有问题数据. 也就是说,左右颠倒了,读者可以自己修改,也可以稍后再上传.

如果您可以传递照片,我们就传递以下视频. 本文将不再赘述

如果您喜欢,请给我奖励. 一根头发和两根头发也是意思,么.

支持F宝账户: 2363891614@qq.com


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-161415-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...