Article connexe: Procédure d'installation du sous-système Windows facile pour Linux (WSL)
J'ai ** installé la version officielle d'OpenCV 4.1.2 sur Ubuntu de WSL (sous-système Windows pour Linux) **, je la garderai donc en mémoire.
La cible est ** pour ceux qui souhaitent utiliser OpenCV avec C ++ **. Je vais l'installer pour qu'il puisse être utilisé avec Python2 et Python3, mais si vous voulez l'utiliser uniquement avec Python, cela semble facile si vous incluez ʻopencv-python`. Aussi, j'essaierai d'expliquer autant que possible les commandes qui apparaissent au milieu.
Veuillez vous référer à la ** page officielle d'OpenCV ** (Installation sous Linux).
L'environnement sur lequel j'ai travaillé cette fois était le suivant. Pour votre information. Windows 10 Home Version 1809 Ubuntu 18.04.3 LTS OpenCV4.1.2-dev Python 2.7.15+ Python 3.6.8
―― 1. Installation du package --1.1 Paquets requis --1.2 Python-dev et numpy --1.3 Options ―― 2. Obtention du code source OpenCV ―― 3. Création d'un makefile avec CMake --4 faire l'installation --5 Contrôle de fonctionnement (affichage de la version) - 5.1 Python2 - 5.2 Python3 - 5.3 C++ --Construire en utilisant 5.3.1 cmake --5.3.2 Construire avec pkg-config [](\ -6 Contrôle de fonctionnement (reconnaissance faciale) - 6.1 Python2 - 6.2 Python3 - 6.3 C++) ―― 6. Autre ―― 7. Référence
Veuillez noter que le travail de ** 4. ** prend un temps d'attente (environ 30 minutes), alors faites-le quand vous en avez le temps.
Exécutez la partie correspondant aux ** Packages requis ** sur la page officielle (Introduction à OpenCV). <détails> <résumé <> Cliquez ici si vous souhaitez installer de ** 1,1 ** à ** 1,3 ** ci-dessous </ résumé>
$ sudo apt install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev libvtk5-qt4-dev libqt4-dev libqt4-opengl-dev libgtkglext1 libgtkglext1-dev python-dev python-numpy python3-dev python3-numpy
Pour le moment, si vous avez ceci, vous pouvez ** installer OpenCV ** et l'utiliser avec ** C ++ **. Exécutez la commande suivante pour installer le package.
$ sudo apt install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
** Description de chaque forfait ** ** build-essential: ** * Compilateurs tels que gcc et g ++, make, etc. * ** cmake: ** Cette fois, il est utilisé dans le but de créer un makefile lors de l'exécution d'un make build. Il est également utilisé pour le contrôle de fonctionnement ** 5.3.1 **, veuillez donc vous y référer (https://kamino.hatenablog.com/entry/cmake_tutorial1). ** git: ** Cette fois, je ne l'utiliserai que lorsque j'aurai le code source d'OpenCV, mais si vous êtes intéressé, [ici](https: //) Veuillez vous reporter à qiita.com/jesus_isao/items/63557eba36819faa4ad9). ** libgtk2.0-dev: ** GTK Développement de bibliothèques Cela semble être un package pour, mais peut-être est-il lié au framework GUI d'OpenCV ** pkg-config: ** Facilite la compilation avec gcc, g ++. Le contrôle de fonctionnement ** 5.3.2 ** expliquera brièvement. ** libavcodec-dev, libavformat-dev, libswscale-dev: ** Paquets de développement FFmpeg et Libav.
Installez Python2 et Python3, et leurs [numpy] correspondants (https://ja.wikipedia.org/wiki/NumPy).
$ sudo apt install python-dev python-numpy python3-dev python3-numpy
: avertissement: ** Remarque: python et python-dev sont différents. Si vous avez déjà python, veuillez exécuter la commande ci-dessus! ** ** (Python-dev est un package de développement qui inclut python. Vous pouvez l'installer plusieurs fois.)
<détails> <résumé> Vérification de la version Python </ résumé>
#Vérification de la version de Python 2
$ python -V
#Vérification de la version de Python 3
$ python3 -V
Vous pouvez utiliser OpenCV sans installer les packages suivants. Sélectionnez celui dont vous avez besoin et installez-le. Si vous vous perdez, installez-le pour le moment.
$ sudo apt install libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev libvtk5-qt4-dev libqt4-dev libqt4-opengl-dev libgtkglext1 libgtkglext1-dev
** Description de chaque forfait ** ** libtbb2, libtbb-dev: ** Activer le traitement parallèle par TBB (Threading Building Blocks) ** libjpeg-dev, libpng-dev, libtiff-dev: ** Permet la gestion des fichiers image au format jpeg, png, tiff ** libdc1394-22-dev: ** Interface de programmation de haut niveau pour les appareils photo numériques IEEE1394 ** libvtk5-qt4-dev, libqt4-dev, libqt4-opengl-dev, libgtkglext1, libgtkglext1-dev: ** Paquets liés à l'interface graphique tels que QT, OpenGL, GTK
OpenCV et OpenCV contrib de ce référentiel (OpenCV) et ce référentiel (OpenCV contrib) Mettez le code source de est directement sous le répertoire personnel. (Référence) Introduction à opencv_contrib
#Déplacer vers le répertoire de base
$ cd ~
#Obtenez le code source OpenCV
$ git clone https://github.com/opencv/opencv.git
#Obtenez le code source de la contribution OpenCV
$ git clone https://github.com/opencv/opencv_contrib.git
Si vous voulez changer de branche (par exemple, si vous voulez changer la version d'OpenCV que vous voulez installer), faites quelque chose comme git checkout 2.4.0
sous ~ / opencv.
Exécutez la commande suivante pour créer un répertoire pour build (ici, le répertoire nommé build) directement sous ~ / opencv.
$ cd ~/opencv
$ mkdir build
$ cd build
CMake (créer un makefile lors d'une compilation make) tout en définissant les options faisant référence à CMakeLists.txt. Exécutez la commande suivante.
$ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D WITH_OPENGL=ON -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules -D OPENCV_GENERATE_PKGCONFIG=ON ..
: avertissement: ** Note 1: N'oubliez pas les deux derniers points ..
de la commande CMake! ** **
(Ceci représente la hiérarchie un niveau au-dessus du répertoire actuel. Il sert à spécifier l'emplacement des CMakeLists à référencer lors de l'exécution de cmake.)
: avertissement: ** Remarque 2: Si la commande ci-dessus ne fonctionne pas, supprimez tous les espaces après -D comme -DCMAKE_BUILD_TYPE = Release
et réessayez **
(-D est une option de CMake et signifie réécriture.)
** Description de l'option ** ** CMAKE_BUILD_TYPE **: spécifiez le mode au moment de la construction ** CMAKE_INSTALL_PREFIX **: spécifiez la destination de l'installation ** OPENCV_EXTRA_MODULES_PATH **: Spécifiez le chemin de OpenCV_contrib ** OPENCV_GENERATE_PKGCONFIG **: Créer un fichier .pc dans pkgconfig (utilisé lors de la compilation de C ++) ** WITH_TBB **: utiliser TBB (Threading Building Blocks) (exécuter C ++ en parallèle) ** WITH_OPENGL **: Utilisation d'OPENGL ** WITH_VTK **: Utilisation de VTK
<détails> make Build. Ensuite, effectuez l'installation.
Exécutez la commande suivante. L'installation est terminée! Pour Python2 et Python3, c'est facile car je pense que le chemin est déjà en place.
Pour C ++, créez un Makefile avec CMake ou passez-le avec pkg-config. Ce qui suit suppose que vous exécutez directement sous 5.1 Python2
Lancez Python à partir de la ligne de commande pour afficher la version en mode interactif.
(Exécutez Python à partir de la ligne de commande) Tout d'abord, démarrez le mode interactif Python 2. Ensuite, importez OpenCV en mode interactif et affichez la version d'OpenCV. Lorsque la version installée d'OpenCV est affichée, le contrôle de fonctionnement est terminé. Quittez le mode interactif. 5.2 Python3
** 5.1 ** C'est OK si vous pouvez exécuter exactement la même chose que vérifier le fonctionnement de 5.3 C++
Quand j'ai écrit comment utiliser CMake et comment utiliser pkg-config, il est devenu inopinément long, donc je le posterai dans un autre article.
Compilez le code C ++ en utilisant OpenCV (CMake, GCC, pkg-config) [](\ # 6. Vérification du fonctionnement (reconnaissance faciale)
###6.1 Python2
###6.2 Python3
###6.3 C++) L'utilisation d'OpenCV améliore non seulement la reconnaissance d'image, mais il est également bon qu'il soit très facile de gérer des fichiers image dans différents formats. En fait, j'ai essayé de faire quelque chose de plus comme opencv en plus de l'affichage de la version pour vérifier le fonctionnement, mais je suis fatigué donc je vais le faire cette fois Recherchez le contenu du package (https://packages.ubuntu.com/ja/)
Comment utiliser CMake Part 1-3 (https://qiita.com/shohirose/items/45fb49c6b429e8b204ac#_reference-27dce2bd429efef9488e)
Recommended Posts
-- General configuration for OpenCV 4.1.2-dev =====================================
-- Version control: 4.1.2-121-g5dd3e6052e
--
-- Extra modules:
-- Location (extra): /home/(Nom d'utilisateur)/opencv_contrib/modules
-- Version control (extra): 4.1.2-32-g61cbb445
--
-- Platform:
-- Timestamp: 2019-11-10T16:00:51Z
-- Host: Linux 4.4.0-17763-Microsoft x86_64
-- CMake: 3.10.2
-- CMake generator: Unix Makefiles
-- CMake build tool: /usr/bin/make
-- Configuration: Release
--
-- CPU/HW features:
-- Baseline: SSE SSE2 SSE3
-- requested: SSE3
-- Dispatched code generation: SSE4_1 SSE4_2 FP16 AVX AVX2 AVX512_SKX
-- requested: SSE4_1 SSE4_2 AVX FP16 AVX2 AVX512_SKX
-- SSE4_1 (16 files): + SSSE3 SSE4_1
-- SSE4_2 (2 files): + SSSE3 SSE4_1 POPCNT SSE4_2
-- FP16 (1 files): + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 AVX
-- AVX (5 files): + SSSE3 SSE4_1 POPCNT SSE4_2 AVX
-- AVX2 (29 files): + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 FMA3 AVX AVX2
-- AVX512_SKX (6 files): + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 FMA3 AVX AVX2 AVX_512F AVX512_COMMON AVX512_SKX
--
-- C/C++:
-- Built as dynamic libs?: YES
-- C++ Compiler: /usr/bin/c++ (ver 7.4.0)
-- C++ flags (Release): -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Winit-self -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -msse -msse2 -msse3 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -DNDEBUG -DNDEBUG
-- C++ flags (Debug): -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Winit-self -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -msse -msse2 -msse3 -fvisibility=hidden -fvisibility-inlines-hidden -g -O0 -DDEBUG -D_DEBUG
-- C Compiler: /usr/bin/cc
-- C flags (Release): -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wuninitialized -Winit-self -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -msse -msse2 -msse3 -fvisibility=hidden -O3 -DNDEBUG -DNDEBUG
-- C flags (Debug): -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wuninitialized -Winit-self -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -msse -msse2 -msse3 -fvisibility=hidden -g -O0 -DDEBUG -D_DEBUG
-- Linker flags (Release): -Wl,--gc-sections
-- Linker flags (Debug): -Wl,--gc-sections
-- ccache: NO
-- Precompiled headers: NO
-- Extra dependencies: dl m pthread rt /usr/lib/x86_64-linux-gnu/libGL.so /usr/lib/x86_64-linux-gnu/libGLU.so
-- 3rdparty dependencies:
--
-- OpenCV modules:
-- To be built: aruco bgsegm bioinspired calib3d ccalib core datasets dnn dnn_objdetect dnn_superres dpm face features2d flann freetype fuzzy gapi hdf hfs highgui img_hash imgcodecs imgproc line_descriptor ml objdetect optflow phase_unwrapping photo plot python2 python3 quality reg rgbd saliency shape stereo stitching structured_light superres surface_matching text tracking ts video videoio videostab viz xfeatures2d ximgproc xobjdetect xphoto
-- Disabled: world
-- Disabled by dependency: -
-- Unavailable: cnn_3dobj cudaarithm cudabgsegm cudacodec cudafeatures2d cudafilters cudaimgproc cudalegacy cudaobjdetect cudaoptflow cudastereo cudawarping cudev cvv java js matlab ovis sfm
-- Applications: tests perf_tests apps
-- Documentation: NO
-- Non-free algorithms: NO
--
-- GUI:
-- GTK+: YES (ver 2.24.32)
-- GThread : YES (ver 2.56.4)
-- GtkGlExt: YES (ver 1.2.0)
-- OpenGL support: YES (/usr/lib/x86_64-linux-gnu/libGL.so /usr/lib/x86_64-linux-gnu/libGLU.so)
-- VTK support: YES (ver 7.1.1)
--
-- Media I/O:
-- ZLib: /usr/lib/x86_64-linux-gnu/libz.so (ver 1.2.11)
-- JPEG: /usr/lib/x86_64-linux-gnu/libjpeg.so (ver 80)
-- WEBP: /usr/lib/x86_64-linux-gnu/libwebp.so (ver encoder: 0x020e)
-- PNG: /usr/lib/x86_64-linux-gnu/libpng.so (ver 1.6.34)
-- TIFF: /usr/lib/x86_64-linux-gnu/libtiff.so (ver 42 / 4.0.9)
-- JPEG 2000: build (ver 1.900.1)
-- OpenEXR: build (ver 2.3.0)
-- HDR: YES
-- SUNRASTER: YES
-- PXM: YES
-- PFM: YES
--
-- Video I/O:
-- DC1394: YES (2.2.5)
-- FFMPEG: YES
-- avcodec: YES (57.107.100)
-- avformat: YES (57.83.100)
-- avutil: YES (55.78.100)
-- swscale: YES (4.8.100)
-- avresample: NO
-- GStreamer: NO
-- v4l/v4l2: YES (linux/videodev2.h)
--
-- Parallel framework: TBB (ver 2017.0 interface 9107)
--
-- Trace: YES (with Intel ITT)
--
-- Other third-party libraries:
-- Intel IPP: 2019.0.0 Gold [2019.0.0]
-- at: /home/(Nom d'utilisateur)/opencv/build/3rdparty/ippicv/ippicv_lnx/icv
-- Intel IPP IW: sources (2019.0.0)
-- at: /home/(Nom d'utilisateur)/opencv/build/3rdparty/ippicv/ippicv_lnx/iw
-- Lapack: NO
-- Eigen: YES (ver 3.3.4)
-- Custom HAL: NO
-- Protobuf: build (3.5.1)
--
-- OpenCL: YES (no extra features)
-- Include path: /home/(Nom d'utilisateur)/opencv/3rdparty/include/opencl/1.2
-- Link libraries: Dynamic load
--
-- Python 2:
-- Interpreter: /usr/bin/python2.7 (ver 2.7.15)
-- Libraries: /usr/lib/x86_64-linux-gnu/libpython2.7.so (ver 2.7.15+)
-- numpy: /usr/lib/python2.7/dist-packages/numpy/core/include (ver 1.13.3)
-- install path: lib/python2.7/dist-packages/cv2/python-2.7
--
-- Python 3:
-- Interpreter: /usr/bin/python3 (ver 3.6.8)
-- Libraries: /usr/lib/x86_64-linux-gnu/libpython3.6m.so (ver 3.6.8)
-- numpy: /usr/lib/python3/dist-packages/numpy/core/include (ver 1.13.3)
-- install path: lib/python3.6/dist-packages/cv2/python-3.6
--
-- Python (for build): /usr/bin/python2.7
--
-- Java:
-- ant: NO
-- JNI: NO
-- Java wrappers: NO
-- Java tests: NO
--
-- Install to: /usr/local
-- -----------------------------------------------------------------
--
-- Configuring done
-- Generating done
-- Build files have been written to: /home/(Nom d'utilisateur)/opencv/build
4. faire l'installation
-j *
est une option de la commande make pour traiter les builds en parallèle.
Exécutez la commande suivante. Cela peut prendre environ 30 minutes.
(L'option parallèle est définie sur 7 selon Page officielle)$ make -j7
$ sudo make install
5. Contrôle de fonctionnement (affichage de la version)
~ / opencv
.
Accédez à votre répertoire personnel avec cd ~ / opencv
.$ python2 #Appel du mode interactif
>> import cv2 #Importation OpenCV
>> print(cv2.__version__) #Voir la version
>> exit() #Fin du mode interactif
python2
avec python3
.6. Autre
7. Référence