虚拟绘图应用:Sketch

随着科技的不断进步,开发者们正在探索如何将先进的技术如物联网、Android、Intel® RealSense™技术以及Windows*集成到他们的应用中。为了帮助开发者们创新并取得成功,社区提供了大量的代码示例、工具下载、开发套件以及与志同道合的开发者分享想法的机会。此外,还可以参加黑客马拉松、竞赛、路演和本地活动。

Sketch应用概述

本文介绍的代码示例使用了Intel® RealSense™ SDK for Windows*来创建一个名为Sketch的简单虚拟绘图应用。这个Windows桌面应用是用C#/WPF开发的,展示了Intel RealSense SDK中的多种手部追踪和手势识别功能:

  • 获取手部关节的x-y-z(世界)坐标
  • 选择性地捕获手势数据
  • 获取警报状态信息(例如,手部检测、校准和边界状态)

(注意:要完全实现这个示例应用的功能,需要一个前置的3D摄像头。)

Sketch是一个简单的绘图应用,允许用户通过手势和手部动作在画布上模拟绘画。图1显示了Sketch用户界面(使用WPF/XAML开发)。

图1. Sketch用户界面

启用了三种手势(在屏幕上显示并伴有相应的动作)来与虚拟画布互动:

  • 手指捏合("绘制") - 使光标变成实心,并在画布上绘制线条。光标在画布上的位置由用户中指的x和y坐标控制。线条的粗细由用户中指的z轴控制(即,远离摄像头会使线条变细,就像减少笔或刷的压力一样)。
  • 手指展开("悬停") - 停用笔,使光标变成一个空心圆圈。悬停允许将笔移动到画布的其他部分而不绘制线条。它还允许用户通过简单地悬停在调色板上方来选择颜色。
  • 挥手("擦除") - 清除绘图画布,使其准备好进行新的绘画。

Sketch应用在用户做出"two_fingers_pinch_open"手势时模拟在画布上绘画。选择这个手势是因为它类似于用户握笔或刷子时的手部姿势。图2展示了这个手势。

图2. 绘制手势

笔的位置和笔画粗细是通过追踪用户中指的尖端来确定的,这可能看起来不太直观,因为手指捏合是启用画布上绘画的手势。选择追踪中指而不是食指或拇指的原因是为了避免当拇指和食指紧压在一起时可能发生的遮挡。与追踪食指或拇指相比,追踪中指可以带来更好的性能。

Sketch应用还展示了如何获取和显示手部警报状态信息(在这种情况下是手部检测、校准和边界异常)。以某种形式提供这种类型的反馈,可以帮助用户正确地将手放置在摄像头前。尽管这个示例应用中这种信息的呈现是简单的,但鼓励开发者向他们的用户提供类似的提示,以改善整体用户体验。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485