Как сохранить только модуль (Canny Edge Detection) библиотеки android opencv?

В настоящее время я работаю над андроид приложение, которое включает в себя Canny Edge Detection. Я решил использовать OpenCV библиотека, которая намного быстрее, чем с использованием Java. Поэтому я разместил libopencv_java.so файлы в соответствующих каталогах. Это сработало, но в результате огромный размер apk. Я не знаю много языка C ++. Можно ли сгенерировать файл libopencv_java.so, который включает в себя только необходимые компоненты для обнаружения ребер, чтобы уменьшить размер apk?

Если да, то как?

В противном случае, пожалуйста, предложите другие быстрые и небольшие библиотеки для выполнения Canny Edge Detection в Android.

0

Решение

Вы можете собрать lib для Android, используя метод, упомянутый здесь.

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

Я предполагаю, что вы используете JNI для реализации своей работы, и вы должны использовать opencv-Android-sdk.

  1. Если вы используете статическую библиотеку, скопируйте только требуемую библиотеку в ../ OpenCV-3.1.0-android-sdk1 / sdk / native / libs / (папка Target-abi).

    2.Если вы используете расшаренный, вам понадобится libopencv_java. Чтобы уменьшить размер, удалите ненужную библиотеку из libopencv_java.so. Чтобы удалить эту библиотеку, перейдите в /opencv/modules/MODULE_NAME/CMakeLists.txt.
    найти линию
    ocv_define_module (imgproc opencv_core WRAP Java Python)
    и удалите Java из этой строки.

Насколько я знаю, canny edge является частью imgproc, core или highgui. Так что модифицируйте cmakelists всех модулей кроме этих. Теперь соберите lib, используя метод из ссылки (приведенный в начале поста). Скопируйте новый lib в папку sdk.

2

Другие решения

Других решений пока нет …