Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用OpenCV for Java中的非自由模块?_Java_Opencv_Surf - Fatal编程技术网

如何使用OpenCV for Java中的非自由模块?

如何使用OpenCV for Java中的非自由模块?,java,opencv,surf,Java,Opencv,Surf,我想使用SURF进行功能检测,并在Java应用程序中使用它,但是默认情况下,库中不包括非自由模块,因为它们是专利 如何访问此模块?我已经搜索和尝试了一些东西,但没有一个奏效;很多人关注安卓系统,我不完全理解 我可以在使用cmake构建库时添加它吗?还是有更好的方法 实际上,当我使用cmake时,默认选择了非自由库模块。因此,您应该在lib文件夹中构建此模块。非自由模块包括一些可能在某些国家获得专利的功能。因此,如果您正在构建一个商业应用程序,并且您将在其中一个国家/地区销售它,那么您应该小心 要

我想使用SURF进行功能检测,并在Java应用程序中使用它,但是默认情况下,库中不包括非自由模块,因为它们是专利

如何访问此模块?我已经搜索和尝试了一些东西,但没有一个奏效;很多人关注安卓系统,我不完全理解


我可以在使用cmake构建库时添加它吗?还是有更好的方法

实际上,当我使用cmake时,默认选择了非自由库模块。因此,您应该在lib文件夹中构建此模块。非自由模块包括一些可能在某些国家获得专利的功能。因此,如果您正在构建一个商业应用程序,并且您将在其中一个国家/地区销售它,那么您应该小心

要使用它,您需要将其添加到引用中并包含标题


编辑

我检查了这里的文档:似乎没有名为nonfree的模块,也没有与sift或surf相关的类。我认为它应该与C++库一样,但我错了。 另一方面,人们声称他们为OpenCV4Android构建了它。这意味着它也可以非官方地为java编译,但似乎没有人能克服这一点。就像这里:

这里还有一个问题:

所以目前还没有解决方案。实现JNI并加载编译的C++非自由库可以顺便解决这个问题。
再编辑一次:)

在一个教程中,有人为android使用的非自由模块实现了JNI。目前我没有足够的知识来尝试java。但是一个志愿者最好用java来尝试一下:


谢谢,我也这么认为,但是我没有选择导入非自由库。我是否需要向Java项目添加单独的库?而且它也是一个Uni项目,所以我不会卖它。检查我的图书馆文件夹,我确实有它。但我记得读过,因为你提到的专利问题,他们把它拿出来,所以我不知道如何访问它。我错了,我认为它会类似于C++,但它不是。检查我编辑的答案。如果我将来有时间,我可能会给它一个快照谢谢,我以前发现了那个链接,我不完全理解它,希望有一个更优雅的解决方案。我试试看。它是否只是在java中运行C++代码?