OpenCV OpenNI Java-CV_CAP_OpenNI不';不存在

OpenCV OpenNI Java-CV_CAP_OpenNI不';不存在,java,opencv,flags,openni,Java,Opencv,Flags,Openni,我正在尝试使用opencv 2.4.7和OpenNI(我都安装了)使一个Asus Xtion在java中工作 我的问题是旗帜不起作用 CV_CAP_OPENNI CV_CAP_OPENNI_深度图 CV_CAP_OPENNI_POINT_CLOUD_地图 CV_CAP_OPENNI_Distance_地图 CV_CAP_OPENNI_disparence_MAP_32F CV\u CAP\u OPENNI\u有效\u深度\u遮罩 没有人在工作,为什么?query Core.getBuildInf

我正在尝试使用opencv 2.4.7和OpenNI(我都安装了)使一个Asus Xtion在java中工作

我的问题是旗帜不起作用

CV_CAP_OPENNI

CV_CAP_OPENNI_深度图

CV_CAP_OPENNI_POINT_CLOUD_地图

CV_CAP_OPENNI_Distance_地图

CV_CAP_OPENNI_disparence_MAP_32F

CV\u CAP\u OPENNI\u有效\u深度\u遮罩


没有人在工作,为什么?

query Core.getBuildInformation()

要了解,如果您的opencv库是使用openni支持构建的(如果您使用的是预制库,则可能不是)


很可能,您必须重新编译opencv(安装了OpenNISDK)才能实现它。

我猜opencv Java包装器可能不支持openni。 与C++ API相比,java和python包装通常是有限的。 通常,核心功能都在那里,但较新的/实验性的部分会在以后提供

对于Java中的快速原型,我使用了很多。 这也可以在eclipse中用作库。 有两个很好的包装可以帮助你:连接到你的Xtion传感器(我已经用一个进行了测试,效果很好)和

辛普莱彭尼

OpenCV处理


如果您不想使用SimplePenni,可以使用PrimeSense的OpenNIJava包装器(OpenNI安装在OpenNI 1.5.x或OpenNI 2.x上时附带)。获得深度/rgb图像后,应该有方法将其转换为实例以进行进一步处理。

我让OpenNI使用官方OpenCV Java绑定。 我必须重新编译并启用_OPEN _NI,就像OpenCV文档中为让Kinect工作所述的那样。然后,问题是获取OpenNI的常量。正如您所说,CV_CAP_OPENNI似乎没有在Java绑定中定义。 代码如下所示:

int CV_CAP_OPENNI = 900;
    VideoCapture capture = new VideoCapture(CV_CAP_OPENNI);


    capture.grab();
    Mat depthMap = new Mat();
    int CV_CAP_OPENNI_DEPTH_MAP = 0;
    capture.retrieve( depthMap,  CV_CAP_OPENNI_DEPTH_MAP);
    Mat show = new Mat();
    depthMap.convertTo( show,CvType.CV_8UC1, 0.05f );
常量值是从D:\opencv\modules\highgui\include\opencv2\highgui\highgui\u c.h中提取的 我认为最好的方法是检查生成Java类的python脚本,并让它们将这些常量包含到生成的jar中


谢谢。以及如何为我的java项目编译一个新的a.jar文件?如果我做了一个cmake,它将生成一个jar文件?你可以运行cmake gui来生成makefiles/项目,选择BUILD\u opencv\u java,-jar文件将使用其他二进制文件生成,我可以使用任何编译器生成?我不想使用处理,我用了很多,但这次我不想使用它。OpenNI支持java。。我发现缺少OpenNI支持的主要问题是原始openCV x没有使用OpenNI支持编译。这个问题是针对c/c++和java的。我试图用openni支持编译opencv,但没有成功:/我以前用openni支持构建过opencv。请尝试让我知道,如果你已经设法编译OpenCV与OpenNI支持自己。这将是很容易做一个快速测试在C++中,但我还没有尝试使用OpenCV OpenNi支持在java中,所以不确定它是否存在。我试图放弃你的帖子,但我有这些问题:仍然有“警告:PrimeSeNSE…”问题。尝试对“OpenCVFindOpenNI.cmake”进行更改,但我认为我当前的opencv 2.4.7已经解决了这个问题。另外,我正在使用OpenNI2,在你的帖子中,我认为你使用的是旧的,新的没有“openni64”和“XnCppWrapper.h”。这么多的问题:/是的,我想这可能是真的。在我之前链接的帖子()中,请注意OpenNI链接是针对OpenNI 1.5的。这对于OpenNI2OpenCV集成来说可能很方便,但这可能意味着您将需要一个JNI层来使用该java。如果您需要在java中使用OpenNI 2和OpenCV,可能上面的建议更简单……使用a并获得深度/rgb图像,然后将像素从该格式转换为Mat格式,并随身携带OpenCV。