11
votes

Erreur HighGui, "Erreur HighGui: V4L / V4L2: VIDIOC_S_CRAP". OpenCV Cross compilé. Host = 64bit Ubuntu 12.04. Cible = bras cortex-a9

Je suis un débutant à OpenCV et j'essaie de mon mieux pour obtenir une application simple exécutée sur une plate-forme intégrée. I OpenCV 2.4.4 croisée et construit avec_gtk = ON, avec_unicap = ON, avec_v4l = sur le besoin pour la prise en charge de la caméra et de l'interface graphique. Le code d'échantillon suivant compile sur l'hôte: xxx

compiler de cette manière pour la liaison statique:

arrach-linux-gnueabi-g ++ -mcpu = cortex-a9 -mfpu = néon -statique opencv_camshow.cpp -o exe -i / home / om / opencv-2.4.4 / plateformes / linux / build_soft / Installation / Inclure -L / Accueil / OM / OPENCV-2.4.4 / Plateformes / Linux / Buily_soft / Installation / Lib -L / Accueil / OM / OPENCV-2.4.4 / Plateforme / Linux / Build_soft / 3RPARTY / LIB -LOPENCV_CALIB3D -LOPENCEND_FLANN -lopencv_imgProc -lopencv_core -lopencv_contrib -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_flann -lopencv_flann -LopencV_Photo -Lopencv_videostab -Pthread -LM -LRT -LZLIB -LRT -LZLIB -STICTATIC

ICI est le problème. Lorsque j'essaie d'exécuter le fichier exécutable 'EXE' sur la cible, j'obtiens cette erreur d'exécution:

erreur highgui: v4l / v4l2: vidioc_s_crop ERREUR OPENCV: erreur non spécifiée (la fonction n'est pas implémentée. Reconstruire la bibliothèque avec Windows, GTK + 2.x ou support en carbone. Si vous êtes sur Ubuntu ou Debian, installez libgtk2.0-dev et pkg-config, puis réexécuter la cmake ou configurer le script) dans CVNAMEDWindow, fichier /home/om/opencv-2.4.4/modules/highgui/src/window.cpp, ligne 652

Terminez appelé après avoir lancé une instance de 'CV :: Exception '

quoi (): /Home/om/opencv-.4.4/modules/highgui/src/window.cpp:652: Erreur: (-2) La fonction n'est pas implémentée. Reconstruire la bibliothèque avec Windows, GTK + 2.x ou support en carbone. Si vous êtes sur Ubuntu ou Debian, installez libgtk2.0-dev et pkg-config, puis réexécutez CUMAKE ou configurez le script dans la fonction CVNAMEDWINDOW

j'ai réinstallé libgtk2.0 -Dev, PKG-CONFIG existez et re-compilé OPENCV, mais cela n'a pas aidé. S'il vous plaît laissez-moi savoir si quelqu'un sait comment surmonter cette question. Merci d'avance. ~ Om

Plus d'infos: J'ai compris ce qui cause ce problème mais je ne l'ai pas encore réparé ...

De ma compréhension, le problème réside dans les scripts de la cmake d'OPENCV. Il ne reconnaît pas l'existence de GTK et, par conséquent, Cross compile sans support GTK. Ceci après avoir assuré que la bibliothèque GTK basée sur les bras est présente dans le dossier LIB de Toolchain et son chemin est exporté vers des chemins système.


4 commentaires

Peut-être que pourrait vous aider?


Merci Etienne pour votre réponse. Dans mon cas, j'essaie de traverser la compilation et j'ai toutes les bibliothèques dans la boîte à outils. De plus, les chemins sont exportés correctement. J'ai mis à jour le problème car le cmake en premier lieu est incapable de localiser GTK et donc des compiles croisées sans support GTK. J'essaie de résoudre ça.


Si LDD est disponible sur la cible, vérifiez quelles bibliothèques l'exécutable recherchent.


Écrivez un PKG-CONFIG FILE ( .pc ) pour GTK.


3 Réponses :


2
votes

Pour croiser Compiler, vous devez indiquer à PKG-CONFIG de rechercher le chemin approprié (par défaut, il s'agira de vos fichiers de configuration / fichier .pc hôte!)

du site Web de PKG-CONFIG

  • Rechercher des annuaires répertoriés en $ pkg_config_path
  • quand $ pkg_config_libdir est spécifié, il remplacera le répertoire par défaut compilé (par exemple / usr / lib / pkgconfig) et le Pkg_config_path. Notez que lorsque vous spécifiez pkg_config_libdir, pkg-config ignore complètement le contenu de pkg_config_path, même si le La documentation indique différentes choses.

2 commentaires

Juste pour être clair. Je dois transférer des fichiers lib libgdk-x11-2.0.so.0) de bras Linux à X86 Linux et définissez le pkg_config_path sur x86 pour pointer sur ce chemin?


Habituellement, vous croiserez à la fois tout le bâtiment (sauf si vous savez que les libs ont été compilés avec une compilation compatible - des choses désagréables peuvent se produire lors de l'utilisation de I.e. GCC-3.3 mélangé à GCC-4.x)



11
votes

Après avoir effectué l'instruction CULAKE Vérifiez si la sortie de CUKE inclut le texte suivant: v4l / v4l2: à l'aide de libv4l .

Si ce n'est pas là, installez v4l2ucp , v4l-utils et libv4l-dev de Synaptic Package Manager. Ensuite, cmake et construire à nouveau.

Cela a fonctionné pour moi mais j'utilisais OpenCV avec des liaisons Python sur Ubuntu 12.04.


0 commentaires

0
votes

Erreur HighGui de OpenCV

Doit réinstaller OpenCV à l'aide de CMAKE P>

git clone https://github.com/Itseez/opencv.git
cd ~/opencv 
mkdir release 
cd release 
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_IPP=OFF ..
make -j4 sudo 
make install
export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages


0 commentaires