jjzjj

c# - 在 Kinect 中测量

我正在尝试开始使用Kinect,它有一个深度感应摄像头,但我没有看到任何关于测量宽度/高度/长度的指导。是计算出物体距相机(深度传感器)的距离以及在该范围内的Kinect视野,然后计算出物体占据多少像素的问题吗?我希望能够从点云中创建网格或其他东西,但我在确定从哪里开始以及如何为对象获取正确的宽度/高度测量值时遇到了麻烦。 最佳答案 这是一项相当复杂的任务,无法用Stackoverflow上的几段文字来回答。原因是它的很多知识都是建立在其他知识之上的。我会先阅读LinearAlgebra使用例如优秀的Rorres,etal.从点云创

java - 如何使用 Java 访问 Kinect?

我目前正在学习计算机视觉类(class),在我的期末项目中,我将制作一个与Kinect互动的小游戏。现在我想用Java制作这款游戏​​,因为我以前从未真正冒险制作过游戏,而且我对这种语言非常熟悉。但我似乎无法找到一种方法来访问深度数据(我只需要将其打包到一些Java数据结构中)和RGB数据(相同的想法)。现在,我有办法与Kinect进行“对话”。我关注了this教程,可以在终端中使用命令glview检测kinect。我有一个叫做Processing的东西它promise是一个Java库,让我使用Kinect,但它使用它自己的语言,它是使用Java“构建”的,所以它不是真正的Java,这

c++ - Kinect 2 - AcquireLatestFrame() 大部分时间都失败

下面给出了连续从Kinect2获取最新帧的C++代码。intmain(){setupKinect();acquireFrames();return0;}templateinlinestaticvoidsafeRelease(Interface*&interfaceToRelease){if(interfaceToRelease!=nullptr){interfaceToRelease->Release();interfaceToRelease=nullptr;}}voidacquireFrames(){while(true){if(bodyFrameReader!=nullptr){I

c++ - 使用 kinect (libfreenect) 加速度计数据

我正在通过openFrameworks在C++中访问Kinect加速度计和ofxKinect并且在某些角度上有一些问题。如果我将kinect向下倾斜90度,我会得到nan值。我看了一下getAccelPitch()方法,这种方法很有意义,因为当值大于9.80665除以10.1/9.80665时asin将返回0。但主要问题是在我将设备倾斜90度后,滚动似乎不可靠(似乎变化不大)。在我的设置中,我需要将设备倾斜90度,但也知道它是新的滚动。关于我如何做到这一点的任何提示和技巧?有没有一种简单的方法来获取数据以使用3条线(轴)绘制kinect的方向。我正在尝试检测这样的方向:

c++ - Kinect v2 将颜色坐标映射到相机空间

我正在尝试将坐标从颜色空间映射到相机空间。我使用的代码如下:HRESULTModelRecognizer::MapColorToCameraCoordinates(conststd::vector&colorsps,std::vector&camerasps){//AccessframeHRESULThr=GetDepthFrame();if(SUCCEEDED(hr)){ICoordinateMapper*pMapper;hr=m_pKinectSensor->get_CoordinateMapper(&pMapper);if(SUCCEEDED(hr)){CameraSpacePo

c++ - Kinect 骨骼关节提取库

我已经使用MicrosoftResearchKinectSDK做了一些事情。获取骨架非常容易,我想在商业项目的背景下做类似的事情。当今最好的C++库是什么(即使它不是免费/开源的)? 最佳答案 微软发布商业版KinectSDKhere. 关于c++-Kinect骨骼关节提取库,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/7860674/

c++ - 将电影转换为 OpenNI *.oni 视频

KinectOpenNIlibrary使用自定义视频文件格式来存储包含rgb+d信息的视频。这些视频的扩展名为*.oni。我找不到关于ONI视频格式的任何信息或文档。我正在寻找一种将传统rgb视频转换为*.oni视频的方法。深度channel可以留空(即归零)。出于示例目的,我有一个带有音频和视频channel的MPEG-4编码的.mov文件。对于必须如何进行转换没有任何限制,我只需要以某种方式进行转换!即imagemagick、ffmpeg、mencoder都可以,C/C++等中的自定义转换代码也是如此。到目前为止,我能找到的只有oneC++conversionutilityinth

c++ - OpenCV (C++) : how to save a 16bit image?

我正在使用kinect,我需要保存RAW深度图像。这意味着我不应该通过转换为8位来保存它(这就是imwrite正在做的!),而是将它保存为16位,而不减少任何位深度。我希望这个问题不会太琐碎,但我是OpenCV编程的新手。我尝试了以下方法,但它不起作用:[...]MatimageDepth(480,640,CV_16UC1);MatimageRGB;//VideostreamsettingsVideoCapturecapture;capture.open(CAP_OPENNI);if(!capture.isOpened()){cerr提前致谢。 最佳答案

java - Java 应用程序与 C++ 应用程序之间的通信

我正在尝试为Java应用程序编写插件。该插件应该能够告诉Java应用程序已识别出新事件(观察者设计模式、轮询……这不是重点)。问题是事件是来自MicrosoftKinectController的跟踪手势(我使用C++和MicrosoftKinectSDK,因为我必须这样做)。所以这意味着我必须在Java应用程序和我的Kinect应用程序之间进行通信。我想到了类似适配器设计模式的东西,其中Java应用程序“包括”接口(interface)(c++头文件、dll等)。首先我想到了JNI,但后来我必须编写一个将在应用程序端使用的DLL,对吧?我想到的另一件事是通过像UDP(或更轻量级的东西?

c++ - FREENECT_DEPTH_REGISTERED 对 libfreenect 没有影响

我正在libfreenect驱动程序上玩Kinect(原始Xbox版本)(顺便说一句,我在Ubuntu12.04上)。我已经从git克隆了最新版本并按照此处的说明手动安装:http://openkinect.org/wiki/Getting_Started#Ubuntu_Manual_Install我想访问注册的深度值。据我所知,Kinect是出厂校准的,并且有一个将深度像素与正确的RGB像素匹配的查找表。我可以很好地打开Kinect并检索原始的11位深度数据。对于1到7.5米的距离,这给了我非线性范围从730到1045的值。运行device->setDepthFormat(FREEN