[英]Kinect V2 Exception in VisualGestureBuilderDatabase
Kinect V2 有问题。 我们使用 Google 和 Microsoft 文档来寻找解决方案,但一无所获。
当我们尝试从数据库加载手势时,我们得到一个异常:
private readonly string gestureDatabase = @"Database\ChiMoGestures.gbd";
. . .
VisualGestureBuilderDatabase database = new VisualGestureBuilderDatabase(this.gestureDatabase)
当程序到达这个位置时,它抛出一个 System.InvalidOperationException ,确切地说:
Microsoft.Kinect.VisualGestureBuilder.dll 中发生类型为“System.InvalidOperationException”的未处理异常
附加信息:此 API 已从 HRESULT 返回异常:0x80004005
也许数据库本身不正确,但我们通过VisualgestureBuilder
得到了它?
我很高兴有人能解决这个问题吗?
不确定这是否相关,因为这个问题已经很老了,但无论如何我都会回答。
Visual Gesture Builder dll 抛出此错误,因为它缺少一些它需要工作的文件。 具体来说,它需要执行手势识别的两种算法的 dll - AdaBoost 和 RFRProgress。 这两个 dll 位于您的 Kinect SDK 文件夹下,通常位于:
C:\Program Files\Microsoft SDKs\Kinect\v2.0_1409\Redist\VGB\x86\vgbtechs
或者
C:\Program Files\Microsoft SDKs\Kinect\v2.0_1409\Redist\VGB\x64\vgbtechs
取决于您的平台。
幸运的是,有一种方法可以通过 Visual Studio 中的 Post-build 命令自动执行此过程。 转到项目 -> 属性 -> 构建事件 -> 编辑构建后...
并粘贴
xcopy "$(KINECTSDK20_DIR)Redist\VGB\$(Platform)\vgbtechs" "$(TargetDir)\vgbtechs" /S /R /Y /I
这将确保无论您的平台设置是什么,您的 Build 目录中都有 dll。
除了前面的评论,您必须将数据库添加到项目解决方案中,然后单击解决方案中的数据库并将其复制到输出目录属性设置为始终复制并将构建操作属性设置为内容
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.