2014-03-12 2 views
0

특징 감지를 위해 SURF를 사용하고 Java 응용 프로그램에서 사용하려는 경우, nonfree 모듈은 기본적으로 라이브러리에 포함되어 있지 않습니다 (특허가 부여됨).Java 용 OpenCV에서 nonfree 모듈을 사용하려면 어떻게해야합니까?

어떻게이 모듈에 액세스합니까? 나는 몇 가지를 수색하고 시도했지만 아무도 일하지 않았다. 많은 사람들이 안드로이드에 중점을 둡니다. 나는 완전히 이해하지 못합니다.

cmake를 사용하여 라이브러리를 빌드 할 때 추가 할 수 있습니까? 아니면 더 나은 의미가 있습니까?

답변

0

실제로 cmake를 사용했을 때 nonfree 라이브러리 모듈이 기본값으로 선택되었습니다. 따라서 lib 폴더에이 모듈을 내장해야합니다. Nonfree 모듈에는 일부 국가에서 특허를받을 수있는 일부 기능이 포함되어 있습니다. 따라서 상업용 응용 프로그램을 제작하는 경우이 국가 중 하나에서 판매 할 것이라는 점에주의해야합니다.

사용하려면 참조에 추가하고 헤더를 포함해야합니다.


편집 나는 여기에 문서를 확인 : http://docs.opencv.org/java/ 비 자유 이름을 가진 모듈 없을 것 같다 및 체로 치거나 서핑과 관련된 어떤 클래스가 없습니다. 나는 그것이 C++ 라이브러리와 동일해야한다고 생각했지만 오판되었다.

한편 사람들은 OpenCV4Android 용으로 제작했다고 주장합니다. 즉, 어떻게 든 비공식적으로 자바 용으로 컴파일 될 수 있지만 아무도 이것을 극복하는 것 같습니다. 순간 그래서 http://code.opencv.org/issues/2825

해결책 밖으로 아직 : http://answers.opencv.org/question/11185/how-can-i-generate-java-bindings-for-non-free/

또한 여기에 대한 문제가있다 : 여기처럼. JNI를 구현하고 컴파일 된 C++ nonfree lib를로드하면 문제가 해결 될 수 있습니다. 비 자유 모듈은 안드로이드와 함께 사용하도록에 대한 튜토리얼에서는 :


하나 더 편집, 누군가가 JNI를 구현했습니다. 나는 자바에 대해 지금 당장 그것을 시험해 볼 충분한 지식이 없다. 그러나 자원 봉사자는 자바로 이것을 시도 할 좋은 것 :

http://web.guohuiwang.com/technical-notes/opencv_nonfree_android_jni_demo

+0

덕분에, 나는 그뿐만 아니라 생각했지만, 나를 비 자유 라이브러리를 가져올 수에 대한 옵션이 없습니다. Java 프로젝트에 별도의 라이브러리를 추가해야합니까? 또한 Uni 프로젝트 용이기 때문에 판매하지 않을 것입니다. – user2916314

+0

내 라이브러리 폴더 확인하기 [Screenshot] (http://i.imgur.com/MyOrwJr.png). 그러나 나는 그들이 당신이 언급 한 특허 문제로 인해 그것을 읽었던 것을 기억합니다. 그래서 그것을 액세스하는 방법을 모르겠습니다. – user2916314

+0

나는 그것이 틀린 w ++ C++ 일 것이라고 생각했지만 오해는하지 않았습니다. 편집 된 답변을 확인하십시오. 만약 내가 미래에 시간이 있다면, 나는 그것에게 기회를 줄 것이다 – yutasrobot