首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenCV OpenNI Java - CV_CAP_OPENNI不存在

OpenCV OpenNI Java - CV_CAP_OPENNI不存在
EN

Stack Overflow用户
提问于 2013-11-27 00:47:55
回答 3查看 993关注 0票数 0

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

我的问题是旗帜不起作用..

CV_CAP_OPENNI

CV_CAP_OPENNI_DEPTH_MAP

CV_CAP_OPENNI_POINT_CLOUD_MAP

CV_CAP_OPENNI_DISPARITY_MAP

CV_CAP_OPENNI_DISPARITY_MAP_32F

CV_CAP_OPENNI_VALID_DEPTH_MASK

没有人在工作,为什么?

EN

回答 3

Stack Overflow用户

发布于 2013-11-27 00:55:11

查询Core.getBuildInformation() http://docs.opencv.org/java/org/opencv/core/Core.html#getBuildInformation()

查看您的opencv库是否支持openni (如果您使用的是预制的库,则可能不是)

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

票数 0
EN

Stack Overflow用户

发布于 2013-11-27 08:01:10

我猜测OpenCV Java包装器可能不支持OpenNI。与c++ API相比,Java和Python包装器通常是有限的。通常核心功能都在那里,但新的/实验性的部分稍后才会出现。

为了在Java语言中快速构建原型,我经常使用Processing。这也可以作为eclipse中的库使用。有两个很好的包装器可以帮助你:连接到你的Xtion传感器的SimpleOpenNI (我已经用一个进行了测试,它工作得很好)和OpenCV Processing wrapper

SimpleOpenNI

OpenCV处理

如果你不想使用SimpleOpenNI,你可以使用PrimeSense的OpenNI Java包装器(它随OpenNI Install for OpenNI 1.5.x或this wrapper for OpenNI 2.x一起提供)。一旦你得到了深度/rgb图像,就应该有办法将它们转换成OpenCV Mat实例进行进一步处理。

票数 0
EN

Stack Overflow用户

发布于 2014-03-07 11:02:28

我让OpenNI使用官方的OpenCV Java绑定。我不得不重新编译并启用WITH_OPEN_NI,就像OpenCV文档中提到的让Kinect正常工作一样。然后,问题是如何获取OpenNI的常量。看起来,就像你说的,CV_CAP_OPENNI并没有在Java binding中定义。代码如下所示:

代码语言:javascript
复制
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_c.h中提取的,我认为最好的方法是检查生成Java类的python脚本,并使它们包含这些常量到生成的jar中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20223034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档