2016-12-16 2 views
0

현재 android 앱에 캐니 에지 감지이 관련되어 있습니다. 나는 자바를 사용하는 것보다 훨씬 빠른 opencv 라이브러리를 사용하기로 결정했다. 그래서 libopencv_java.so 파일을 각각의 디렉토리에 넣었습니다. 그것은 효과가 있었지만 거대한 apk 크기의 결과. 나는 C++ 언어를 많이 모른다. apk 크기를 줄이기 위해 가장자리 감지에 필요한 구성 요소 만 포함하는 libopencv_java.so 파일을 생성 할 수 있습니까?opencv 안드로이드 라이브러리의 모듈 (Canny Edge Detection) 만 보관하는 방법은 무엇입니까?

그렇다면 어떻게됩니까?

그렇지 않으면 안드로이드에서 Canny Edge Detection을 수행 할 다른 빠르고 작은 라이브러리를 제안하십시오.

+0

직접 구현 하시겠습니까? – TomJ

+1

opencv는 오픈 소스이므로 수정할 수 있습니다. 당신은 canny 외에 몇 가지 핵심 기능이 필요합니다. 라이센스 문제를 처리하십시오. – Micka

+0

@Micka는 제안에 감사하지만 문제는 라이브러리가 너무 크다는 것입니다. 나는 그것을 수정할 수 없다. 나는 그것의 특정 부분 만 만드는 방법을 모른다. –

답변

2

여기에 언급 된 방법을 사용하여 Android 용 lib를 만들 수 있습니다.

https://zami0xzami.wordpress.com/2016/03/17/building-opencv-for-android-from-source/

나는 당신이 일을 구현하기 위해 JNI를 사용하고 OpenCV의-안드로이드 SDK를 사용하고 있어야합니다 같아요./SDK/기본/libs와/(대상-ABI 폴더)

  1. 당신이 ../ 정적 라이브러리 복사를에만 필요 lib 디렉토리를 사용하는 경우 OpenCV의-3.1.0 - 안드로이드 - sdk1.

    하나는 다음 /opencv/modules/MODULE_NAME/CMakeLists.txt 찾기로 이동이 lib 디렉토리를 제거, 크기를 줄이기위한 libopencv_java.So 필요 libopencv_java.so.To에서를 unrequired lib 디렉토리를 제거합니다 공유 사용하는 2.If a line ocv_define_module (imgproc opencv_core WRAP java python) 이 줄에서 java를 제거하십시오.

나는 canny edge가 imgproc 또는 core 또는 highgui의 일부임을 압니다. 그래서 이들을 제외한 모든 모듈의 cmak 목록을 수정하십시오. 이제 링크의 메소드 (게시물의 시작 부분에 주어진)를 사용하여 lib를 빌드하십시오. 새 lib를 sdk 폴더에 복사하십시오.

+0

웹 사이트에 설명 된 방법이 너무 복잡합니다. 그것을 알아낼 수 없었다. 어쨌든 도와 줘서 고마워. –

+0

당신은 어떤 특정 부분에 갇혀 있습니까 ?? 내 경우에도 같은 방법을 사용했다. 어느 부분이 복잡합니까 ?? –