10
votes

Compilation personnalisée OpenCV

J'essaie de réduire la taille de l'opencv2.framework pour iOS. Mon projet utilisant uniquement des modules Core, IMGPROC et HighGui. Comment puis-je compiler avec seulement ces modules? ou y a-t-il une alternative pour réduire la taille?

merci.


0 commentaires

4 Réponses :


1
votes

Il suffit de supprimer des modules à partir du dossier Modules et de supprimer Inclure les lignes du fichier d'en-têtes. Et compiler. Avant de faire cela, read cmakelists.txt pour les dépendances.

Par exemple, pour module HighGui; P>

ocv_define_module(imgproc opencv_core)


0 commentaires

2
votes

comme de v2.4.6 OpenCV a un script Python personnalisé pour faciliter le travail. (plateformes> iOS> build_framework.py)

Il vous suffit d'ajouter des indicateurs sur la ligne CMAKE pour créer une compilation personnalisée.

Par exemple: je n'avais besoin que de l'IMGPROC et d'inclure tous les en-têtes et d'inclure tous les en-têtes. Dans l'archive, mon cmake redresse maintenant ceci: xxx

n'oubliez pas de ajouter le noyau et le monde lib comme ils sont obligatoires. Exécutez le script Python> Profite.

Après cela ajoutez la liberry manuellement à votre projet et retirez les en-têtes d'importation Pesky laissés dans les en-têtes> OpenCV.HPP et vous devriez être prêt à partir! < / p>


0 commentaires

5
votes

J'ai rencontré ce problème maintenant avec la version 3.1 et la réponse de Nebuto est proche, mais pas terminée à partir de maintenant. Ce qui suit a été capable de produire le résultat souhaité en mettant à jour le fichier build_framework.py.

b = Builder(args.opencv, args.contrib,
    [
        ("armv7", "iPhoneOS"),
        ("armv7s", "iPhoneOS"),
        ("arm64", "iPhoneOS"),
        #("i386", "iPhoneSimulator"),
        ("x86_64", "iPhoneSimulator"),
    ])
b.build(args.out)


1 commentaires

opencv_world n'est pas obligatoire: Réponses. opencv.org/Questtion/3614/...



1
votes

AS de OpenCV 3.4.1, vous pouvez maintenant utiliser le build_list arg pour spécifier quels modules à construire. Il s'agit d'une approche de liste blanche vs les approches de liste noire utilisant -build_opencv_xxx = off approches ci-dessus.

Si tout ce que vous voulez, c'est le module imgProc alors vous pouvez modifier Le script de construction à quelque chose comme ceci: xxx

Bien que dans la pratique, cela ne fonctionnait pas vraiment pour moi. Je devais aussi exclure manuellement highgui , imgcodecs et vidéo : xxx


0 commentaires