使用kinect v2将手势添加到视觉手势生成器帧源时出错
本文关键字:出错 v2 kinect 添加 使用 视觉 | 更新日期: 2023-09-27 18:01:03
在使用Visual手势生成器创建手势数据库后,我正在尝试编写自己的项目来检测手势。在看到SDK浏览器附带的"DiscreteGestureBasics WPF"示例后,我试图编写自己的代码,但当我试图将手势添加到"视觉手势生成器框架源"对象时,我得到了一个异常:
"类型为System.InvalidOperationException的首次机会异常"出现在Microsoft.Kinect.VVisualGestureBuilder.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);
}
}
希望你能帮助我。
使用所提供的信息来回答这个问题有点困难,但是,我确实在构建后事件命令行中看到了一个错误。您正在显式指定一个平台x64,并且您的项目是在x86或Win32配置下构建的,因此这将导致dll不匹配,无法工作。
将"x64"值替换为"$(Platform(",并查看错误是否仍然存在。
此外,我会在你的构建目录中检查两个文件
- Microsoft.Kinect.VisualGestureBuilder.dll
- Microsoft.Kinect.VisualGestureBuilder.xml
当您添加对Microsoft.Kinect.VisualGestureBuilder的引用时,应该自动复制这两个,但只需确保它们在那里。
如果您已经创建了自己的手势数据库文件,您可以尝试使用示例代码附带的手势数据库运行代码,看看会发生什么。
资料来源:个人经历。自从Kinect V2问世以来,我一直在研究手势识别的样本和我自己的代码。
尝试在vs中设置.gbd文件属性如下:
复制到输出目录:始终
创建操作:内容