[Reproducido] Instale OpenCV-Python en Fedora (2)

Este tutorial es para Fedora 18 (64 bits) y Fedora 19 (32 bits) Otras versiones actualmente no descartan otros errores.

Introducción

Instalamos OpenCV-Python en Fedora de dos formas:

1) Instalar
desde binarios prediseñados disponibles en el repositorio de Fedora; 2) Compilar desde código fuente.

Además, OpenCV-Python requiere la biblioteca Numpy, y se recomienda encarecidamente instalar Matplotlib. Por supuesto, la instalación debe realizarse a través de IPython (una terminal interactiva de Python). Usemos el primer método para instalarlo.

Instalación de binarios prediseñados

Para que la instalación sea más conveniente, usamos el siguiente comando en el terminal como root (administrador del sistema) para instalar todos los paquetes de software.

 	view plaincopy to clipboardprint? 
 1. $ yum install numpy opencv *

Abra el IPython recién introducido y luego ingrese el código en la terminal de Python:

	view plaincopy to clipboardprint?
 1. >>> import cv2 as cv  
 2. >>> print( cv.__version__ )

Si no hay ningún error después del retorno del carro y la impresión, entonces la instalación ha sido exitosa y puede haber un problema con este método de instalación:

Es posible que el repositorio de Yum no siempre contenga la última versión de OpenCV. Por ejemplo, en el momento de escribir este tutorial, la biblioteca yum contiene 3.4.1 y la última versión de OpenCV es 4.2. Para la API de Python, la última versión siempre incluye un mejor soporte. Además, dependiendo del controlador, ffmpeg, paquete de software gstreamer, etc. utilizado, el soporte de la cámara, la reproducción de video, etc. pueden tener problemas.

Entonces, de hecho, otro método es más efectivo, que es compilar a partir del código fuente.

Compilar desde la fuente

Compilar a partir del código fuente puede parecer un poco complicado al principio, pero una vez que tiene éxito, no hay nada complicado.

Primero, instalaremos algunas dependencias. Algunos son obligatorios, otros son opcionales. Dependencias opcionales, si no son necesarias, puede omitirlas.

Dependencias obligatorias:

Primero, necesita CMake para configurar e instalar, usar GCC para compilar y Python-devel y Numpy para crear extensiones de Python.

	view plaincopy to clipboardprint?

 1. yum install cmake   
 2. yum install python-devel numpy   
 3. yum install gcc gcc-c++

A continuación, se necesita soporte GTK para funciones GUI, soporte de cámara (libdc1394, v4l), soporte de medios (ffmpeg, gstreamer), etc.

	view plaincopy to clipboardprint?
 1. yum install gtk2-devel   
 2. yum install libdc1394-devel   
 3. yum install ffmpeg-devel   
 4. yum install gstreamer-plugins-base-devel

Dependencias opcionales:

OpenCV viene con archivos compatibles con formatos de imagen (como PNG, JPEG, JPEG2000, TIFF, WebP, etc.). Pero puede que sea un poco antiguo. Si desea obtener la biblioteca más reciente, puede instalar archivos de desarrollo en estos formatos.

	view plaincopy to clipboardprint?
 1. yum install libpng-devel   
 2. yum install libjpeg-turbo-devel   
 3. yum install jasper-devel  
 4. yum install openexr-devel   
 5. yum installlibtiff-devel   
 6. yum install libwebp-devel

Varias funciones de OpenCV son paralelas al Thread Building Block (TBB) de Intel. Sin embargo, si desea habilitarlo, primero debe instalar TBB. (Además, cuando utilice CMake para configurar la instalación, no olvide configurar -D WITH_TBB = ON. Más detalles a continuación).

	view plaincopy to clipboardprint?
 1. yum install tbb-devel

OpenCV usa otra biblioteca Eigen para optimizar las operaciones matemáticas. Por lo tanto, si Eigen está instalado en el sistema, puede usarlo. (Además, cuando utilice CMake para configurar la instalación, no olvide configurar WITH_EIGEN = ON)

	view plaincopy to clipboardprint?
 1. yum install eigen3-devel

Si necesita generar documentación, debe instalar Doxygen (herramienta de generación de documentos).

	view plaincopy to clipboardprint?
 1. yum install doxygen

Descarga OpenCV

A continuación, podemos empezar a descargar OpenCV:

1. Descargue la última versión de OpenCV desde el sitio web de sourceforge: http://sourceforge.net/projects/opencvlibrary/ . Luego descomprime la carpeta.

2. Descargue el último código fuente del repositorio github de OpenCV. Para hacer esto, primero debes instalar Git.

	view plaincopy to clipboardprint?
 1. yum install git   
 2. git clone https://github.com/opencv/opencv.git

Creará una carpeta OpenCV en el directorio de inicio, la copia llevará algún tiempo.

Ahora abra una ventana de terminal y navegue hasta la carpeta OpenCV descargada. Cree una nueva carpeta de compilación y navegue hasta ella.

	view plaincopy to clipboardprint?
 1. mkdir build   
 2. cd build

Configuración e instalación

Ahora que se han instalado todas las dependencias necesarias, instalemos OpenCV, por supuesto, la instalación debe configurarse mediante CMake. Especifica los módulos que se instalarán, la ruta de instalación, otras bibliotecas que se usarán, si se compilan documentos y ejemplos, etc. Los siguientes comandos se usan generalmente para la configuración (se ejecutan desde la carpeta de compilación)

	view plaincopy to clipboardprint?
 1. cmake -D CMAKE_BUILD_TYPE = RELEASE -D CMAKE_INSTALL_PREFIX = / usr
    / local ..

Especifica el tipo de compilación como "modo de lanzamiento" y la ruta de instalación es / usr / local. Marque -D antes de cada opción, observe el letrero al final ... En resumen, este es un formato:

	view plaincopy to clipboardprint?
 1. cmake [-D <flag>] [-D <flag>] ..

Puede especificar cualquier número de banderas, pero cada bandera debe ir precedida por -D.

En este tutorial, instalaremos OpenCV con soporte TBB y Eigen. También creamos la documentación, pero no incluimos pruebas de rendimiento ni ejemplos de compilación. También deshabilitaremos los módulos relacionados con la GPU (porque estamos usando OpenCV-Python, por lo que no necesitamos módulos relacionados con la GPU. Esto nos ahorra algo de tiempo).

1. Habilite la compatibilidad con TBB y Eigen:

	view plaincopy to clipboardprint?
 1. cmake -D WITH_TBB=ON -D WITH_EIGEN=ON ..

2. Habilite la documentación y deshabilite las pruebas y los ejemplos:

	view plaincopy to clipboardprint?
 2. Cmake -D BUILD_DOCS=ON -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D
    BUILD_EXAMPLES=OFF ..

3. Deshabilite todos los módulos relacionados con la GPU:

	view plaincopy to clipboardprint?
 3. cmake -D WITH_OPENCL=OFF -D BUILD_opencv_gpu=OFF -D
 4. BUILD_opencv_gpuarithm=OFF -D BUILD_opencv_gpubgsegm=OFF -D
 5. BUILD_opencv_gpucodec=OFF -D BUILD_opencv_gpufeatures2d=OFF -D
 6. BUILD_opencv_gpufilters=OFF -D BUILD_opencv_gpuimgproc=OFF -D
 7. BUILD_opencv_gpulegacy=OFF -D BUILD_opencv_gpuoptflow=OFF -D
 8. BUILD_opencv_gpustereo=OFF -D BUILD_opencv_gpuwarping=OFF ..

4. Establezca la ruta de instalación y el tipo de compilación:

	view plaincopy to clipboardprint?
 1. Cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local
    ..

Cada vez que ingrese una declaración cmake, imprimirá los ajustes de configuración resultantes. En la configuración final, asegúrese de completar los siguientes campos (las siguientes son algunas configuraciones importantes que obtuve). Estos campos también deben completarse correctamente en su sistema; de lo contrario, se producirán algunos problemas. Por lo tanto, debe verificar si ha realizado correctamente los pasos anteriores.

	view plaincopy to clipboardprint?
 1. ...  
 2. --   GUI:  
 3. --     GTK+ 2.x:                    YES (ver 2.24.19)  
 4. --     GThread :                    YES (ver 2.36.3)  
 5. --   Video I/O:  
 6. --     DC1394 2.x:                  YES (ver 2.2.0)  
 7. --     FFMPEG:                      YES  
 8. --       codec:                     YES (ver 54.92.100)  
 9. --       format:                    YES (ver 54.63.104)  
 10. --       util:                      YES (ver 52.18.100)  
 11. --       swscale:                   YES (ver 2.2.100)  
 12. --       gentoo-style:              YES  
 13. --     GStreamer:  
 14. --       base:                      YES (ver 0.10.36)  
 15. --       video:                     YES (ver 0.10.36)  
 16. --       app:                       YES (ver 0.10.36)  
 17. --       riff:                      YES (ver 0.10.36)  
 18. --       pbutils:                   YES (ver 0.10.36)  
 19. --     V4L/V4L2:                    Using libv4l (ver 1.0.0)  
 20. --   Other third-party libraries:  
 21. --     Use Eigen:                   YES (ver 3.1.4)  
 22. --     Use TBB:                     YES (ver 4.0 interface 6004)  
 23. --   Python:  
 24. --     Interpreter:                 /usr/bin/python2 (ver 2.7.5)  
 25. --     Libraries:                   /lib/libpython2.7.so (ver 2.7.5)  
 26. --     numpy:                       /usr/lib/python2.7/site-packages/numpy/core/include (ver 1.7.1)  
 27. --     packages path:               lib/python2.7/site-packages   
 28. ...

Ahora use el comando make para construir el archivo, y use el comando make install para instalar, make install todavía se ejecuta como root (administrador del sistema).

	view plaincopy to clipboardprint?
 1. make   
 2. su   
 3. make install

La instalación ha terminado. Todos los archivos se instalan en la carpeta / usr / local /. Pero para usarlo, Python debería poder encontrar el módulo OpenCV. Hay dos formas:

1. Mueva el módulo a cualquier carpeta en la ruta de Python: puede encontrar la ruta de Python escribiendo import sys; print (sys.path) en la terminal de Python. Imprimirá muchas ubicaciones. Mueva /usr/local/lib/python2.7/site-packages/cv2.so a cualquiera de esta carpeta. P.ej,

sumv / usr / local / lib / python2.7 / site-packages / cv2.so / usr / lib / python2.7 / site-packages

Sin embargo, debe hacer esto cada vez que instale OpenCV.

2. Agregue /usr/local/lib/python2.7/site-packages a PYTHON_PATH: solo necesita ejecutarse una vez. Simplemente abra /.bashrc y agregue la siguiente línea, luego cierre la sesión y regrese.

	view plaincopy to clipboardprint?
 1. export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages

En este punto, la instalación de OpenCV está completa. Abra la terminal e intente:

	view plaincopy to clipboardprint?
 1. import cv2 as cv。

Posibles problemas

(1) A menudo aparecen errores cuando make compila opencv. Lo que encontré es:

	view plaincopy to clipboardprint?
 1. Linking CXX executable ../../bin/opencv_perf_core /lib/libEGL.so.1: undefined reference to `wl_display_dispatch_queue_pending' collect2: error: ld returned 1 exit status make[2]: * [bin/opencv_perf_core] Error 1 make[1]: *[modules/core/CMakeFiles/opencv_perf_core.dir/all] Error 2  
 2.
 3. make: * [all] Error 2

Entrar:

	view plaincopy to clipboardprint?
 1. yum update libwayland*

Luego hazlo de nuevo.

(2) La prueba se puede realizar después de la instalación

cd ~ / opencv-3.4.1 Encontré los siguientes problemas:

	view plaincopy to clipboardprint?
 1. Package opencv was not found in the pkg-config search path.  
 2. Perhaps you should add the directory containing `opencv.pc'   
 3. to thePKG_CONFIG_PATH environment variable   
 4. No package 'opencv' found

La solucion es:

cp /usr/local/lib/pkgconfig/opencv.pc / usr / lib / pkgconfig

Si aún no se puede resolver, la posible razón es que los privilegios de root se usan al compilar e instalar opencv y exportar variables de entorno, y el programa se llama aquí como un usuario normal, por lo que no se pueden encontrar los archivos relevantes.

Agregue al final de ~ / .bash_profile:

	view plaincopy to clipboardprint?
 1. PKG_CONFIG_PATH=/usr/local/lib/pkgconfig   
 2. export PKG_CONFIG_PATH

Inicie sesión en el sistema nuevamente, compile el programa y tenga éxito.
Luego, la instalación de OpenCV-Python en Fredora básicamente está lista, y listo.
Consulte la página de resumen del artículo https://blog.csdn.net/weixin_44237705/article/details/107864965
Se puede intercambiar más información técnica de openvino en el grupo ~
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_44237705/article/details/107905064
Recomendado
Clasificación