有没有办法通过WIN32 API获取USB端口ID?
我需要一种在我正在从事的项目中获取USB端口(如果存在)的ID的方法.我们要做的是通过使用USB端口和应用程序(使用这些摄像机)将某些华硕深度摄像机连接到Windows计算机,以唯一识别相机,因为每个相机都有为其生成的一些特定信息(当我们再次断开并将相机重新连接到计算机时,一些转换矩阵等)并重新连接了每个相机的信息.看起来我们正在使用的API来控制深度传感器(OpenNi)不提供特定设备的独特ID,因此我们正在考虑使用USB端口的ID,而不是设备并专门生成我们的数据使用USB端口ID;使我们知道相机应定位的"如何",例如,如果将其连接到"特定" USB端口. 我在这里有两个问题.首先,Windows系统上的USB端口是否具有如此唯一的标识符;我们可以以某种方式区分不同的USB端口吗? (最后,我有点怀疑,因为它们是连接的,最后.)我的第二个问题是,如果我们能够区分和枚举USB端口,我们该如何使用Win32 API或其他一些库来做到这一点?我遇到了称为" Windows Manage
4 2023-12-11
编程技术问答社区
在openni2上改变分辨率不起作用
我想通过640x480阅读深度框架. 我正在使用Windows 8.1 64bit,OpenNi2 32bit,Kinect:PSMP05000,PSCM04900(PrimesSense) 我从这里获取代码参考: 无法设置VGA分辨率 合并到此代码: 如果您从这里安装OpenNi2 32bit,则应编译: openini 2 #include "iostream" #include "OpenNI.h" #include "OniSampleUtilities.h" #define SAMPLE_READ_WAIT_TIMEOUT 2000 //2000ms using namespace openni; using namespace std; int main() { Status rc = OpenNI::initialize(); if (rc != STATUS_OK) { cout
12 2023-11-24
编程技术问答社区
Openni 2和Visual Studio 2012
我刚刚下载了Openni 2 SDK( www.openni.org ),我正在尝试在Visual Studio 2012中设置一个项目. 我做了什么: 创建一个新的C ++ Win32控制台应用程序 转到 project> myproject属性,在配置属性> vc ++目录 ... 添加 c:\ program文件(x86)\ openni2 \ redist \; to 可执行目录 在 在 在 但是,当我尝试构建时,我有以下未解决的符号错误(其中conleleapplication1是我的项目的名称) Error 1 error LNK2019: unresolved external symbol __imp__oniInitialize referenced in function "public: static enum openni::Status __cdecl openni::OpenNI::initialize(void)" (?init
8 2023-11-23
编程技术问答社区
由于 "类型名称不允许 "而使代码在MSVC++ 2010中工作的变通方法
我正在尝试实现一个手指检测,该链接被给出在这里.我正在浏览MSVC2010中的代码,它给了我错误,如图所示,如下所示.有人可以告诉我为什么以下代码会给我错误吗?这与以下问题有关; 1 , 2 , 3 ?有可能解决方法吗?我已经包括: #include #include 我也尝试了: unsigned short depth = (unsigned short) (v[2] * 1000.0f); // hand depth unsigned short near = (unsigned short) (depth - 100); // near clipping plane unsigned short far = (unsigned short) (depth + 100); // far clipping plane 但不起作用. 谢谢, ikel 解决方案 原因是near和far已经在其他地方已经是
12 2023-11-23
编程技术问答社区
CMAKE无法找到OpenNI
我一直在尝试使用Kinect Libraries(http://nicolas.burrus.name/index.php/research/kinectusenestk)运行"启动教程"),但是我偶然发现了一个错误. 当我在CLI中尝试以下行: cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo .. 我有以下错误: CMake Error at D:/Program Files/CMake 2.8/share/cmake-2.8/Modules/FindPackageHan dleStandardArgs.cmake:91 (MESSAGE): Could NOT find OpenNI (missing: OPENNI_LIBRARY OPENNI_INCLUDE_DIR) Call Stack (most recent call first): D:/Program Files/CMake 2.8/share/cmake-2.8
58 2023-08-11
编程技术问答社区
在多线程应用程序中使用opencv waitKey()。
我有一个用QT5.7和OpenNi编写的多线程应用程序.它具有启动第二个线程的主线程,该线程从.ONI录制文件(Asus Xtion Pro Live)捕获框架进行一些处理,并通过QT信号插槽机制将帧传递到主线程,并使用. 我要做的是实现一个暂停密钥,因此请按" P"处理暂停.我在想这样的事情: void Camera::run(){ while(!cameraStop && this->device.isValid()) { try { if (!buttonPause) { getFrame(); process(); emit sigFrameImageReady(frame); if (cv::waitKey(1)==112){ setButtonPause(!(getButtonPause()));
32 2023-07-17
编程技术问答社区
cv::Mat和XnDepthPixel*之间的转换
我正在使用OpenNi 1.5.4.0和OpenCV 2.4.5,以及可视化目的的QT(仅RGB图像). 基本上,我正在从kinect中检索深度和RGB帧,然后使用转换将它们存储在硬盘驱动器上: /* Depth conversion */ cv::Mat depth = cv::Mat(2, sizes, CV_16UC1, (void*) pDepthMap); //XnDepthPixel *pDepthMap /* RGB conversion */ ///image is a QImage* , pImageMap is a XnUInt8* for(int i = 0; i
24 2023-07-17
编程技术问答社区
在NITE2 python绑定中创建UserTracker会崩溃
我正在尝试使用openni2和nite2 python bindings .我在Windows 7下,我拥有Kinect SDK1.8,OpenNi 2.2和Nite 2.2,在Visual C ++的32位版本中没有问题.我有python 2.7.5 32位. 现在,我的目的是将Nite中提供的一些示例转换为Python,但是我仍然没有找到如何在没有程序崩溃的情况下创建UserTracker(HandTracker也是如此).我已经能够运行玩具示例利用nite).这就是我正在做的事情,也是我发现的错误 - 我发现的内容不太有用 - In [1]: from primesense import openni2, nite2 In [2]: nite2.initialize() In [3]: dev = openni2.Device.open_any() In [4]: ut = nite2.UserTracker(dev) ----------------------
20 2023-07-12
编程技术问答社区
如何在Processing 2中读取oni文件?
我有一个在处理2中的Kinect程序,我想通过将其传递给一个.ONI文件来测试或模拟,而不是从Kinect中获取输入. 可以执行此操作,即获得处理2而不是使用Kinect,应该从.ONI文件读取值并产生输出? 解决方案 我建议使用 simpleopenni 库库: import SimpleOpenNI.*; SimpleOpenNI ni; void setup(){ size(640,480); ni = new SimpleOpenNI(this); if(SimpleOpenNI.deviceCount() == 0) ni.openFileRecording("/path/to/yourRecording.oni"); ni.enableDepth(); } void draw(){ ni.update(); image(ni.depthImage(),0,0); } 如果您有兴趣阅读深度图中的每个值,请查看[此答案](尤其是
20 2023-06-15
编程技术问答社区
SimplePenni记录和回放用户跟踪数据
我能够使用SimpleOpenni成功记录和重播深度和RGB录音(.ONI文件).我还希望能够从录制文件中跟踪用户,换句话说,能够轻松地从深度图像中提取人们的sillhouettes.当运行连接到传感器,通过在setup()方法中调用enableUser(),然后在绘制呼叫中获取userMap()或userImage()时,使用SimpleOpenni很容易做到这一点.这样做的动机是能够轻松地从背景中划分一个人的sillohette.我正在使用SimpleOpenni版本1.96. 这是我在记录数据时使用的代码: SimpleOpenNI context; public void setup() { context = new SimpleOpenNI(this); // recording context.enableDepth(); context.enableRGB(); context.enableUser(
8 2023-06-15
编程技术问答社区
kinect/处理/简单openni点云数据未正确输出
我已经创建了一个处理草图,该草图将点云数据的每个帧从kinect保存到文本文件,其中文件的每行都是Kinect已注册的点(或顶点).我计划将数据拉到3D程序中,以在3D空间中可视化动画并应用各种效果.问题是,当我这样做时,第一帧似乎是正确的,其余的框架似乎正在吐出看起来像第一个图像的东西,还有一堆随机噪声.这是我的代码.它需要简单的OpenNI才能正常工作.您可以看到评论 import SimpleOpenNI.*; //import processing.opengl.*; SimpleOpenNI context; float zoomF =0.5f; float rotX = radians(180); // by default rotate the hole scene 180deg around the x-axis, float rotY = radians(0); // the data from openni com
28 2023-06-15
编程技术问答社区
当我们有深度和rgb矩阵时,如何显示3D图像#39;OpenCV中的s(从Kinect捕获)
我们使用openni库的kinect捕获了一个3D图像,并使用此代码以OpenCV垫的形式获得了RGB和深度图像. main() { OpenNI::initialize(); puts( "Kinect initialization..." ); Device device; if ( device.open( openni::ANY_DEVICE ) != 0 ) { puts( "Kinect not found !" ); return -1; } puts( "Kinect opened" ); VideoStream depth, color; color.create( device, SENSOR_COLOR ); color.start(); puts( "Camera ok" ); depth.create( device,
28 2023-06-09
编程技术问答社区
用OpenCV和OpenNI测量两点之间的距离
我正在使用OpenCV 2.4.0中的内置OpenNi访问,并且我正在尝试测量深度图中两个点之间的距离.我已经尝试过了: #include "opencv2/core/core.hpp" #include "opencv2/highgui/highgui.hpp" #include "opencv2/imgproc/imgproc.hpp" #include using namespace cv; using namespace std; Point startPt(0,0); Point endPt(0,0); void onMouse( int event, int x, int y, int flags, void* ) { if( event == CV_EVENT_LBUTTONUP) startPt = Point(x,y); if( event == CV_EVENT_RBUTTONUP) endPt = Point(
20 2023-05-10
编程技术问答社区
将Kinect深度转换为RGB
我正在使用OpenNi和OpenCV(但没有最新的代码并提供OpenNi支持).如果我只是将深度通道发送到屏幕 - 它看起来很黑,很难理解.因此,我想为用户以颜色显示一个深度通道,但找不到如果不丢失准确性的方法.现在我这样做: xn::DepthMetaData xDepthMap; depthGen.GetMetaData(xDepthMap); XnDepthPixel* depthData = const_cast(xDepthMap.Data()); cv::Mat depth(frame_height, frame_width, CV_16U, reinterpret_cast(depthData)); cv::Mat depthMat8UC1; depth.convertTo(depthMat8UC1, CV_8UC1); cv::Mat falseColorsMap; cv::applyColorMap(depthMat
14 2023-05-10
编程技术问答社区
如何在Windows和Visual Studio 2010中安装Openni?
我想使用此代码与Kinect进行Kinect,因为我的编码都在C ++中,并且我意识到我需要Openni. VideoCapture capture( CV_CAP_OPENNI ); 问题是,我找不到OpenNi的最新指南分期付款.当我找到一些好的指南时,链接已经死了.谁能在Windows和Visual Studio 2010中给我链接,以便在Windows和Visual Studio中安装良好的链接?我会非常感谢. 解决方案 VideoCapture capture( CV_CAP_OPENNI );听起来就像是使用openCV构建的openni支持.我建议先安装OpenNI.版本1.5.4.0您可以找到您需要按以下顺序安装3件事: Openni Nite 传感器kinect kinect (Avin的驱动程序具有kinect的补丁,默认传感器驱动程序适用于默认传感器驱动程序.像传感器一样的华硕) 您安装了OpenNI并起作用:Primesense
26 2023-05-09
编程技术问答社区
OpenNI和OpenCV:cv2.imshow()崩溃,错误:(-215:断言失败) dst.data == (ucar*)dst_ptr in function 'cvShowImage'。
我正在尝试从连接到Windows 10机器的Orbbec Astra Pro摄像头接收深度图像.我已经安装了opencv-python 4.0.0.21和primesense 2.2.0.30.post5,它似乎是最新的稳定python软件包. 这是我正在尝试的代码段: import numpy as np import cv2 from primesense import openni2 from primesense import _openni2 as c_api openni2.initialize("./OpenNI-Windows-x64-2.3/Redist") if openni2.is_initialized(): print('openni2 ready') else: print('openni2 not ready') dev = openni2.Device.open_any() depth_stream = dev.
64 2023-05-09
编程技术问答社区
使用Kinect的手指/手势识别
在解释问题之前,让我解释一下我的需求. 我期待着手工受控的应用程序. 使用Palm进行导航,并使用抓手/拳头单击. 目前,我正在与OpenNi合作,这听起来很有希望,而且很少有例子,因为我在样本中使用了Insuild Hand Tracker,但事实证明这很有用.这是我的时间. 我想问的是 1)拥有拳头/抢探测器的最佳方法是什么? 我在提取的RGB数据上培训并使用了Adaboost拳头分类器,这非常好,但是它有太多的错误检测可以继续前进. 所以,我在这里构架了两个问题 2)还有其他能够使用深度数据实现我的需求的好库吗? 3)我们可以训练自己的手势,尤其是用手指,因为某些纸是指hmm,如果是的,我们如何继续使用Openni之类的图书馆? 是的,我尝试使用Openni中的中间货物图书馆,例如Grab detecter,但它们不会达到我的目的,因为它既不适合我的需求. 除了我问的东西,如果您认为有什么可以帮助我的好建议. 解决方案
38 2023-05-09
编程技术问答社区
应该如何编写binding.gyp来建立一个带有OpenNI的Node.js插件?
我正在尝试构建使用openni的node.js addon.我以前从未使用过Node-GYP,因此我尝试设置binding.gyp文件,以便将OpenNi库作为构建的一部分.我实际编写的代码只是 Hello World示例. binding.gyp文件基于 nuimotion 在Github上,正在做类似的事情.这是我的: { "targets": [ { "target_name": "onijs", "sources": [ "src/main.cpp" ], "include_dirs": [ "./src/Include" ], "libraries": [ "-lOpenNI2", "-Wl,-rpath ./" ] } ] } 这是我所做的(在OSX中工作): 创建了一个名为onijs/ 的节点项目文件夹 下载并提取的Openni 将
16 2023-04-26
编程技术问答社区
java.library.path中缺少文件
在编译Openni的演示时,我偶然发现了此错误: Exception in thread "main" java.lang.UnsatisfiedLinkError: no OpenNI.jni in java.library.path at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1758) at java.lang.Runtime.loadLibrary0(Runtime.java:823) at java.lang.System.loadLibrary(System.java:1045) at org.OpenNI.NativeMethods.(NativeMethods.java:34) at org.OpenNI.Context.initFromXmlEx(Context.java:317) at org.OpenNI.Context.createFromXmlFile(Context.java
36 2023-04-21
编程技术问答社区