小编Coe*_*ect的帖子

将Kinect音频与视频匹配

我有一个使用Kinect处理视频会议的项目(或者更可能是其中四个).现在,我的公司为我们的VTC房间使用这些价格昂贵的相机.希望是,将几个Kinects联系在一起,我们可以降低成本.计划是让其中四个/五个覆盖180度弧线,这样Kinects就可以看到整个房间/桌子(仍然比我们现有的相机便宜很多!).应用程序将根据桌面上的对象选择来自Kinect的视频流.计划在理论上很好,但我遇到了障碍.

据我所知,没有办法分辨哪个麦克风阵列与Kinect Runtime对象相对应.我可以使用以下方法获取表示每个Kinect的对象:

Device device = new Device();
Runtime[] kinects = new Runtime[device.Count];
for( int i = 0; i < kinects.Length; i ++ )
    kinects[i] = new Runtime(i);
Run Code Online (Sandbox Code Playgroud)

每个麦克风阵列使用:

var source = new KinectAudioSource();
IEnumerable<AudioDeviceInfo> devices = source.FindCaptureDevices();
foreach( AudioDeviceInfo in device in devices)
{
    KinectAudioSource devSpecificSource = new KinectAudioSource();
    devSpecificSource.MicrophoneIndex = (short)device.DeviceIndex;
}
Run Code Online (Sandbox Code Playgroud)

但是我找不到任何方法可以知道运行时A对应于KinectAudioSource B.对于我正在使用的两个Kinect来说这不是一个大问题(我只是想猜哪个是哪个,如果它们错了就转换它们) ,但是当我们获得四到五个Kinects时,我不希望每次应用程序运行时都需要进行任何类型的校准.我已经考虑过假设Runtime和KinectAudioSource对象的顺序相同(运行时索引0对应于设备中的第一个AudioDeviceInfo),但这似乎有风险.

所以,问题是:有没有办法将Runtime对象与其KinectAudioSource匹配?如果没有,是否保证它们的顺序正确,那么我可以将Runtime 0与设备中的第一个KinectAudioSource麦克风索引相匹配?

更新: 最后猛烈抨击WPF的单线程公寓要求和Kinect音频的多线程公寓要求足以使两者一起行动.问题是,据我可以告诉,Kinect的运行对象和KinectAudioSources的顺序都没有排队.我在一个相当响亮的实验室(我是......可能是房间内的40名实习生之一),所以很难测试,但我很确定订单已经切换为我插入的两个Kinects.我有两个Runtime对象和两个KinectAudioSource对象.当第一个KinectAudioSource报告声音直接来自它前面时,我实际上站在与第二个Runtime对象关联的Kinect前面.所以不能保证两者的订单排成一行.现在,重复一下这个问题:如何将KinectAudioSource对象与Nui.Runtime对象进行匹配?现在,我只挂了两个Kinect,但由于目标是四个或五个......我需要一个具体的方法来做到这一点.

更新2: 带回我工作的两个Kinects回家玩.三个Kinects,一台电脑.有趣的东西(实际上很难将它们全部安装到一起,其中一个视频源似乎没有工作,所以我现在回到2).musefan的回答让我希望我错过了AudioDeviceInfo对象中的一些内容,这些内容可以解释这个问题,但没有运气.我在运行时对象中找到了一个名为NuiCamera.UniqueDeviceName的有趣外观字段,但我在AudioDeviceInfo中找不到该字段和任何内容之间的任何链接.

这些字段的输出,希望Sherlock Holmes看到线程并注意到连接:

Console.WriteLine("Nui{0}: {1}", i, nuis[i].NuiCamera.UniqueDeviceName);
//Nui0: USB\VID_0409&PID_005A\6&1F9D61BF&0&4
//Nui1: USB\VID_0409&PID_005A\6&356AC357&0&3

Console.WriteLine("AudioDeviceInfo{0}: {1}, {2}, {3}", audios.IndexOf(audio), …
Run Code Online (Sandbox Code Playgroud)

c# kinect

28
推荐指数
1
解决办法
2426
查看次数

一次编译成两个.Net框架

我在c#中有一个程序,我想让它编译成两个不同的.Net Framework版本.因此,当我按下编译按钮时,它会生成fx."ComputerInfo3.exe"和"ComputerInfo4.exe".

我想使用.Net Framework的3.5和4版.我使用Visual Studio和C#.这可能吗?

提前致谢!

.net c# visual-studio

20
推荐指数
1
解决办法
3636
查看次数

打开带附件的默认电子邮件程序(C#)

我正在寻找一种方法来打开用户的默认电子邮件程序来编写新的电子邮件并在C#应用程序中指定附件.现在,我可以开始发送电子邮件并指定收件人,主题,正文等,但我找不到任何方法来指定附件.

System.Diagnostics.Process.Start(@"mailto:me@mydomain.com&subject=Hi&body=%0D%0DSent from my Kinect");
Run Code Online (Sandbox Code Playgroud)

这适用于基本电子邮件,但无法添加附件.对于一些背景知识,我的老板想要使用语音命令从Kinect获取快照,然后通过电子邮件发送给某人.

通过"具有相似标题的问题",我发现了可能是错误的语言,但它让我觉得可能有办法至少使用Microsoft Outlook.这就是我工作中大多数人使用的东西,但我真的希望有一些适用于任何邮件客户端的东西.

我不想只通过C#发送电子邮件,因为我希望用户能够在发送之前编辑邮件客户端中的电子邮件.

所以,问题是:在打开用户的默认电子邮件程序时,有没有办法指定附件?如果没有,我在哪里可以找到使用C#在Microsoft Outlook中使用附件创建电子邮件的资源?

c# email interop

12
推荐指数
1
解决办法
2万
查看次数

Kinect裁剪图像

我正在尝试裁剪视频RGB的矩形区域.首先我找到了头部关节的坐标,并且在这个坐标上我在RGB视频上画了一个矩形.现在我想在另一个视频中显示第一张图片中租金角内的图像.任何帮助都会很棒.

视频RGB显示在"RGBvideo"图像控件中.裁剪图像我想在"faceImage"图像控件中显示

我在线搜索但无法找到解决方案.我很困惑.

非常感谢

c# wpf kinect

7
推荐指数
1
解决办法
2353
查看次数

Microsoft Kinect(适用于Windows)

好的,所以我不确定你们中的很多人是否已经开始使用已于2012年2月发布的Microsoft Kinect for Windows.我正在尝试开始开发,我想知道是否有任何关于如何找到的教程使用SDK或有人可以指导我如何使用Kinect捕获RGB流?

windows kinect

6
推荐指数
1
解决办法
314
查看次数

标签 统计

c# ×4

kinect ×3

.net ×1

email ×1

interop ×1

visual-studio ×1

windows ×1

wpf ×1