【翻译】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之ScrollView
1.ScrollView和HorizontalScrollView是为控件或者布局添加滚动条 2.上述两个控件只能有一个孩子,但是它并不是传统意义上的容器 3.上述两个控件可以互相嵌套 4.滚动条的位 ...
- AppPoolService-IIS应用程序池辅助类(C#控制应用程序池操作)
using System.Collections.Generic; using System.DirectoryServices; using System.Linq; using Microsoft ...
- hdu 4033 二分几何
参考:http://blog.csdn.net/libin56842/article/details/26618129 题意:给一个正多边形内点到其他顶点的距离(逆时针给出),求正多边形的边长 二分多 ...
- 浅谈K-SVD
由于工作需要,最近刚刚看了一些K-SVD的介绍,这里给自己做一下小节. K-SVD我们一般是用在字典学习.稀疏编码方面,它可以认为是K-means的一种扩展,http://en.wikipedia.o ...
- eclipse下导入工程的小问题
- 简单几何(线段覆盖) POJ 3347 Kadj Squares
题目传送门 题意:告诉每个矩形的边长,它们是紧贴着的,问从上往下看,有几个还能看到. 分析:用网上猥琐的方法,将边长看成左端点到中心的距离,这样可以避免精度问题.然后先求出每个矩形的左右端点,然后如果 ...
- 逆序数2 HDOJ 1394 Minimum Inversion Number
题目传送门 /* 求逆序数的四种方法 */ /* 1. O(n^2) 暴力+递推 法:如果求出第一种情况的逆序列,其他的可以通过递推来搞出来,一开始是t[1],t[2],t[3]....t[N] 它的 ...
- 算法教程(2)zz
In the previous section we saw how to use vectors to solve geometry problems. Now we are going to le ...
- C#控制鼠标位置
It is not possible using the .NET BCL. However if you really want it you can use native SetCursorPos ...
- silverlight 跨域访问 wcf
先介绍一下我的测试项目,我用flash和silverlight一同来调用一个webservice,一个flash客户端,一个silverlight客户端,一个web项目来host flash和silv ...