【翻译】Kinect v2程序设计(C++-) AudioBeam篇

图1 Kinect v2预览版的Microphone Array


- // Sensor
- IKinectSensor* pSensor; // ……1
- HRESULT hResult = S_OK;
- hResult = GetDefaultKinectSensor( &pSensor ); //……2
- if( FAILED( hResult ) ){
- std::cerr << "Error : GetDefaultKinectSensor" << std::endl;
- return -;
- }
- hResult = pSensor->Open(); //……3
- if( FAILED( hResult ) ){
- std::cerr << "Error : IKinectSensor::Open()" << std::endl;
- return -;
- }
列表1.1 相当于图1「Sensor」的部分(重发)
- // Source
- IAudioSource* pAudioSource; //……1
- hResult = pSensor->get_AudioSource( &pAudioSource ); //……2
- if( FAILED( hResult ) ){
- std::cerr << "Error : IKinectSensor::get_AudioSource()" << std::endl;
- return -;
- }
列表1.2 相当于图1「Source」的部分
- // Get Audio Beam List
- IAudioBeamList* pAudioBeamList; //……1
- hResult = pAudioSource->get_AudioBeams( &pAudioBeamList ); //……2
- if( FAILED( hResult ) ){
- std::cerr << "Error : IAudioSource::get_AudioBeams()" << std::endl;
- return -;
- }
- // Open Audio Beam
- IAudioBeam* pAudioBeam; //……3
- hResult = pAudioBeamList->OpenAudioBeam( , &pAudioBeam ); //……4
- if( FAILED( hResult ) ){
- std::cerr << "Error : IAudioBeamList::OpenAudioBeam()" << std::endl;
- return -;
- }
列表1.3 取得Microphone Array和AudioBeam
- while( ){
- // Get Angle and Confidence
- FLOAT angle = 0.0f;
- FLOAT confidence = 0.0f;
- pAudioBeam->get_BeamAngle( &angle ); // radian [-0.872665f, 0.872665f] ……1
- pAudioBeam->get_BeamAngleConfidence( &confidence ); // confidence [0.0f, 1.0f] ……2
- // Show Result
- // Convert from radian to degree : degree = radian * 180 / Pi
- if( confidence > 0.5f ){
- std::system( "cls" );
- std::cout << "Angle : " << angle * 180.0f / M_PI << ", Confidence : " << confidence << std::endl; //……3
- }
- // Input Key ( Exit ESC key )
- if( GetKeyState( VK_ESCAPE ) < ){
- break;
- }
- }
列表1.5 取得音源方向和推测的信赖值

- 弧度(radian)→角度(degree)∶ degree=radian×180÷π
- 角度(degree)→弧度(radian)∶ radian=degree×π÷180

图5 运行结果
【翻译】Kinect v2程序设计(C++-) AudioBeam篇的更多相关文章
- 【翻译】Kinect v2程序设计(C++) Body 篇
Kinect SDK v2预览版的主要功能的使用介绍,基本上完成了.这次,是关于取得Body(人体姿势)方法的说明. 上一节,是使用Kinect SDK v2预览版从Kinect v2预览版取得B ...
- 【翻译】Kinect v2程序设计(C++) BodyIndex篇
通过Kinect SDK v2预览版,取得BodyIndex(人体区域)的方法和示例代码. 上一节,介绍了从Kinect v2预览版用Kinect SDK v2预览版获取Depth数据的方法. 这 ...
- 【翻译】Kinect v2程序设计(C++) Color篇
Kinect SDK v2预览版,获取数据的基本流程的说明.以及取得Color图像的示例程序的介绍. 上一节,是关于当前型号Kinect for Windows(后面称作Kinect v1)和次世代型 ...
- 【翻译】Kinect v2程序设计(C++) Depth编
Kinect SDK v2预览版,取得Depth数据的方法说明. 上一节,介绍了通过使用Kinect for Windows SDK v2预览版(以下简称为,Kinect SDK v2预览版)从Kin ...
- 【翻译】Kinect v1和Kinect v2的彻底比较
本连载主要是比较Kinect for Windows的现行版(v1)和次世代型的开发者预览版(v2),以C++开发者为背景介绍进化的硬件和软件.本文主要是对传感的配置和运行条件进行彻底的比较. ...
- 【计算机视觉】深度相机(五)--Kinect v2.0
原文:http://blog.csdn.NET/qq1175421841/article/details/50412994 ----微软Build2012大会:Kinect for Windows P ...
- Kinect v2.0 for windows开发环境说明
官方文档里是这些: Supported Operating Systems and Architectures The following operating systems and architec ...
- Kinect v2(Microsoft Kinect for Windows v2 )配置移动电源解决方案
Kinect v2配置移动电源解决方案 Kinect v2如果用于移动机器人上(也可以是其他应用场景),为方便有效地展开后续工作,为其配置移动电源是十分必要的. 一.选择移动电源 Kinect v2原 ...
- Ubuntu_ROS中应用kinect v2笔记
Ubuntu_ROS中应用kinect v2笔记 个人觉得最重要的资料如下: 1. Microsoft Kinect v2 Driver Released http://www.ros.org/new ...
随机推荐
- Android实现高仿QQ附近的人搜索展示
本文主要实现了高仿QQ附近的人搜索展示,用到了自定义控件的方法 最终效果如下 1.下面展示列表我们可以使用ViewPager来实现(当然如果你不觉得麻烦,你也可以用HorizontalScrollVi ...
- svn服务端hooks钩子可用于多项目自动同步
废话不多说,直接上post-commit脚本了: 日志会全部记录下来包括同步的文件 vim post-commit #!/bin/sh REPOS="$1" # 仓库的路径 REV ...
- DRF如何序列化外键的字段
我觉得在有些应用场景下,这个操作是有用的,因为可以减少一个AJAX的请求,以增加性能. 当然,是二次请求,还是一次传输.这即要考虑用户体验,还要兼顾服务器性能. 一切是有条件的平衡吧.就算是一次传输, ...
- C#(去、过滤)掉字符中的换行符
本文介绍的方法需要先导入命名空间:usingSystem.Text.RegularExpressions; 字符串里所有的的换行符都去掉:textStr = Regex.Replace(textStr ...
- matlab练习程序(图像马赛克)
处理原理就是将邻域像素平均值赋给邻域中的所有像素. 这里将处理方法分为了带线条和不带线条,带线条处理后的视觉效果要好些. 原图: 处理结果(不带线条): 处理结果(带线条): 代码处理的是带线条的情况 ...
- Codeforces Gym 100637A A. Nano alarm-clocks 前缀和处理
A. Nano alarm-clocks Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100637/p ...
- Spring的类型转换器
spring有2种类型转换器,一种是propertyEditor,一种是Converter. 第一种属性编辑器用法见Spring的属性编辑器的章节.如果2种转换器都适用,那么究竟会适用哪种呢?Spri ...
- ember.js:使用笔记10 常用方法
init: controller中初始化方法, //注意该方法是在其他方法之前,所以取不出this,model等值: 跳转:this.tra ...
- HealthKit开发快速入门教程之HealthKit框架体系创建健康AppID
HealthKit开发快速入门教程之HealthKit框架体系创建健康AppID HealthKit开发准备工作 在开发一款HealthKit应用程序时,首先需要讲解HealthKit中有哪些类,在i ...
- 【python游戏编程之旅】第二篇--pygame中的IO、数据
本系列博客介绍以python+pygame库进行小游戏的开发.有写的不对之处还望各位海涵. 在上一篇中,我们介绍了pygame的入门操作http://www.cnblogs.com/msxh/p/49 ...