[英]How to keep only a module (Canny Edge Detection) of opencv android library?
我目前正在開發一個涉及Canny Edge Detection的android應用程序。 我決定使用opencv庫,該庫比使用Java快得多。 因此,我將libopencv_java.so文件放置在它們各自的目錄中。 它起作用了,但是卻導致了很大的apk大小 。 我不太了解C ++語言。 是否可以生成libopencv_java.so文件,該文件僅包含邊緣檢測所需的組件以減小apk大小?
如果是,怎么辦?
否則,建議使用其他快速且較小的庫在Android中執行Canny Edge Detection。
您可以使用此處提到的方法為Android構建lib。
https://zami0xzami.wordpress.com/2016/03/17/building-opencv-for-android-from-source/
我猜您正在使用JNI來實現您的工作,並且您必須正在使用opencv-Android-sdk。
如果您使用的是靜態庫,則只需要將lib復制到../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的一部分。 因此,修改除這些模塊外的所有模塊的cmakelist。 現在使用鏈接中的方法構建lib(在文章開頭給出)。將新的lib復制到sdk文件夾中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.