Ich versuche, das SDK manuell, aber die erzeugten .dylibs und .so sind über 70MB groß zu kompilieren:Tipps für die Größe der .dylib reduziert und .so
➜ lib ✗ pwd
/Users/gond/opencv/build/lib
➜ lib ✗ du -h .
71M
Dies ist der Befehl I‘ mit m:
cmake -D CMAKE_BUILD_WITH_INSTALL_RPATH=ON \ -D CMAKE_INSTALL_PREFIX=/usr/local ..
gibt es eine Möglichkeit, die Größe zu reduzieren? Letztendlich würde ich gerne opencv für Android kompilieren, aber 70MB wert von Bibliotheken wäre viel zu groß für eine vernünftige App.
Jeder Gedanke geschätzt.
UPDATE:
Hier ist eine Liste der größten 10 Bibliotheken erzeugt die obige Befehl:
38M libopencv_imgproc.3.4.0.dylib
13M libopencv_core.3.4.0.dylib
4.1M libopencv_dnn.3.4.0.dylib
3.1M cv2.so
2.9M libopencv_imgcodecs.3.4.0.dylib
1.9M libopencv_calib3d.3.4.0.dylib
1.3M libopencv_ts.a
1.2M libopencv_java340.dylib
916K libopencv_photo.3.4.0.dylib
Hier ist die Liste der größten 10 der Android-Option:
40M libopencv_java3.so
6.0M libopencv_imgproc.a
5.5M libopencv_core.a
2.5M libopencv_ximgproc.a
2.4M libopencv_calib3d.a
1.6M libopencv_ts.a
1.5M libopencv_photo.a
1.5M libopencv_ml.a
1.3M libopencv_features2d.a
Seltsamerweise ist libopencv_imgproc.3.4.0.dylib
38mb noch libopencv_imgproc.a
ist 13mb. Gibt es Möglichkeiten, "Submodule" auszulassen? Gibt es beispielsweise eine Möglichkeit, Bewegungsanalyse und Objekterkennung auszulassen, aber ColorMaps beizubehalten?
Sofern Sie die monolithische gebaut sind 'World' Variante Sie eine Bibliothek pro OpenCV Modul. Also, herauszufinden, welche Sie tatsächlich benötigen (basierend auf welcher Funktionalität Sie verwenden) - das ist wahrscheinlich eine viel kleinere Teilmenge. –
@ DanMašek Unter Verwendung des obigen Befehls ist die größte Bibliothek die '.dylib' für' improc', die 38mb ist. Kann es irgendwie abgestreift werden? Wenn ich mit Android-Optionen baue, ist das resultierende 'libopencv_java3.so' alleine 40mb. Es gibt andere '.a' Bibliotheken, aber die größte ist ungefähr 6 MB. –