В настоящее время я работаю над андроид приложение, которое включает в себя Canny Edge Detection. Я решил использовать OpenCV библиотека, которая намного быстрее, чем с использованием Java. Поэтому я разместил libopencv_java.so файлы в соответствующих каталогах. Это сработало, но в результате огромный размер apk. Я не знаю много языка C ++. Можно ли сгенерировать файл libopencv_java.so, который включает в себя только необходимые компоненты для обнаружения ребер, чтобы уменьшить размер apk?
Если да, то как?
В противном случае, пожалуйста, предложите другие быстрые и небольшие библиотеки для выполнения Canny Edge Detection в Android.
Вы можете собрать lib для Android, используя метод, упомянутый здесь.
https://zami0xzami.wordpress.com/2016/03/17/building-opencv-for-android-from-source/
Я предполагаю, что вы используете JNI для реализации своей работы, и вы должны использовать opencv-Android-sdk.
Если вы используете статическую библиотеку, скопируйте только требуемую библиотеку в ../ 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.
Других решений пока нет …