使用Visual Gesture Builder创建手势数据库后,我试图编写自己的项目来检测手势。 看完" DiscreteGestureBasics-WPF"的例子后随着SDK浏览器的出现,我尝试编写自己的代码,但是当我试图将手势添加到"视觉手势构建器框架来源时,#34;对象,我得到了例外:
"类型' System.InvalidOperationException'的第一次机会异常 发生在Microsoft.Kinect.VisualGestureBuilder.dll"
我已在后期制作活动中添加了行"xcopy "$(KINECTSDK20_DIR)Redist\VGB\x64\vgbtechs" "$(TargetDir)\vgbtechs" /S /R /Y /I"
但它仍无法正常工作。
如果我使用kinect sdk附带的示例,一切正常,但是当我尝试编写自己的项目时,它根本不工作。 我在他们的项目上测试我的自定义数据库并且它正在工作。
这是代码不能正常运行的行:
foreach (Gesture gesture in database.AvailableGestures)
{
if (gesture.Name.Equals(this.hands) || gesture.Name.Equals(this.handsUp))
{
this.vgbFrameSource.AddGesture(gesture);
}
}
希望你能帮帮我..
答案 0 :(得分:1)
使用提供的信息回答这个问题有点困难,但是,我确实在Post-build事件命令行中看到了错误。您明确指定了一个平台 - x64 - 并且您的项目是在x86或Win32配置下构建的,因此这将导致dll不匹配并且无法正常工作。
替换你的' x64' ' $(平台)'的价值并查看错误是否仍然存在。
另外,我会检查构建目录中的两个文件 -
当您添加对Microsoft.Kinect.VisualGestureBuilder的引用时,应自动复制这两个,但只需确保它们在那里。
如果您已创建自己的手势数据库文件,则可以尝试使用示例代码附带的手势数据库运行代码,并查看会发生什么。
来源:个人经历。自从Kinect V2问世以来,我一直在使用Gesture识别样本和我自己的代码。
答案 1 :(得分:1)
尝试在vs中设置.gbd文件属性,如下所示:
复制到输出目录:始终
创建操作:内容