[Reproduzido] Instale OpenCV-Python no Fedora (2)

Este tutorial é para Fedora 18 (64 bits) e Fedora 19 (32 bits). Outras versões atualmente não descartam outros bugs.

Introdução

Instalamos OpenCV-Python no Fedora de duas maneiras:

1) Instale a
partir de binários pré-compilados disponíveis no repositório Fedora; 2) Compile a partir do código-fonte.

Além disso, OpenCV-Python requer a biblioteca Numpy e é altamente recomendável instalar Matplotlib. Claro, a instalação precisa ser feita por meio de IPython (um terminal Python interativo). Vamos usar o primeiro método para instalá-lo.

Instalação de binários pré-construídos

Para tornar a instalação mais conveniente, usamos o seguinte comando no terminal como root (administrador do sistema) para instalar todos os pacotes de software.

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

Abra o IPython recém-introduzido e insira o código no terminal Python:

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

Se não houver erro após o retorno do carro e a impressão, a instalação foi bem-sucedida e pode haver um problema com este método de instalação:

O repositório Yum nem sempre contém a versão mais recente do OpenCV. Por exemplo, no momento em que este tutorial foi escrito, a biblioteca yum contém 3.4.1 e a versão mais recente do OpenCV é 4.2. Para a API Python, a versão mais recente sempre inclui um suporte melhor. Além disso, dependendo do driver, ffmpeg, pacote de software gstreamer, etc. usado, o suporte para câmera, reprodução de vídeo, etc. podem ter problemas.

Portanto, na verdade, outro método é mais eficaz, que é compilar a partir do código-fonte.

Compilar da fonte

Compilar a partir do código-fonte pode parecer um pouco complicado no início, mas, uma vez que tenha sucesso, não há nada complicado.

Primeiro, vamos instalar algumas dependências. Alguns são obrigatórios, outros são opcionais. Dependências opcionais, se não forem necessárias, você pode ignorá-las.

Dependências obrigatórias:

Primeiro, você precisa do CMake para configurar e instalar, usar GCC para compilar e Python-devel e Numpy para criar extensões Python.

	view plaincopy to clipboardprint?

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

Em seguida, o suporte GTK para funções GUI, suporte a câmera (libdc1394, v4l), suporte a mídia (ffmpeg, gstreamer), etc. são necessários.

	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

Dependências opcionais:

OpenCV vem com arquivos de suporte para formatos de imagem (como PNG, JPEG, JPEG2000, TIFF, WebP, etc.). Mas pode ser um pouco velho. Se você deseja obter a biblioteca mais recente, pode instalar os arquivos de desenvolvimento nesses 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

Várias funções OpenCV são paralelas ao Thread Building Block (TBB) da Intel. No entanto, se quiser habilitá-lo, você precisa instalar o TBB primeiro. (Além disso, ao usar CMake para configurar a instalação, não se esqueça de definir -D WITH_TBB = ON. Mais detalhes abaixo.)

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

OpenCV usa outra biblioteca Eigen para otimizar operações matemáticas. Portanto, se Eigen estiver instalado no sistema, você pode usá-lo. (Além disso, ao usar CMake para configurar a instalação, não se esqueça de definir WITH_EIGEN = ON)

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

Se você precisa construir a documentação, você precisa instalar o Doxygen (ferramenta de geração de documentos).

	view plaincopy to clipboardprint?
 1. yum install doxygen

Baixar OpenCV

A seguir, podemos começar a baixar o OpenCV:

1. Baixe a versão mais recente do OpenCV do site sourceforge: http://sourceforge.net/projects/opencvlibrary/ . Em seguida, descompacte a pasta.

2. Baixe o código-fonte mais recente do repositório github do OpenCV. Para fazer isso, você precisa instalar o Git primeiro.

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

Isso criará uma pasta OpenCV no diretório inicial, a cópia levará algum tempo.

Agora abra uma janela de terminal e navegue até a pasta OpenCV baixada. Crie uma nova pasta de construção e navegue até ela.

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

Configuração e instalação

Agora que todas as dependências necessárias foram instaladas, vamos instalar o OpenCV. Claro, a instalação deve ser configurada usando CMake. Ele especifica os módulos a serem instalados, o caminho de instalação, outras bibliotecas a serem usadas, se para compilar documentos e exemplos, etc. Os seguintes comandos são geralmente usados ​​para configuração (executado a partir da pasta de construção)

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

Ele especifica o tipo de construção como "modo de liberação" e o caminho de instalação é / usr / local. Marque -D antes de cada opção, observe a placa no final .... Resumindo, este é um formato:

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

Você pode especificar qualquer número de sinalizadores, mas cada sinalizador deve ser precedido por -D.

Neste tutorial, instalaremos o OpenCV com suporte TBB e Eigen. Também construímos a documentação, mas não incluímos testes de desempenho e exemplos de construção. Também desabilitaremos os módulos relacionados à GPU (porque estamos usando OpenCV-Python, então não precisamos de módulos relacionados à GPU. Isso nos poupa algum tempo).

1. Habilite o suporte TBB e Eigen:

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

2. Ative a documentação e desative testes e exemplos:

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

3. Desative todos os módulos relacionados à 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. Defina o caminho de instalação e o tipo de construção:

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

Cada vez que você inserir uma instrução cmake, ele imprimirá as configurações resultantes. Na configuração final, certifique-se de preencher os seguintes campos (a seguir estão algumas configurações importantes que recebi). Esses campos também devem ser devidamente preenchidos em seu sistema, caso contrário, poderão ocorrer alguns problemas. Portanto, você precisa verificar se executou as etapas acima corretamente.

	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. ...

Agora use o comando make para construir o arquivo e use o comando make install para instalar, make install ainda é executado como root (administrador do sistema).

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

A instalação terminou. Todos os arquivos são instalados na pasta / usr / local /. Mas, para usá-lo, o Python deve ser capaz de encontrar o módulo OpenCV. Existem duas maneiras:

1. Mova o módulo para qualquer pasta no caminho Python: você pode encontrar o caminho Python digitando import sys; print (sys.path) no terminal Python. Ele imprimirá muitos locais. Mova /usr/local/lib/python2.7/site-packages/cv2.so para qualquer uma desta pasta. Por exemplo,

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

No entanto, você deve fazer isso sempre que instalar o OpenCV.

2. Adicione /usr/local/lib/python2.7/site-packages a PYTHON_PATH: ele só precisa ser executado uma vez. Basta abrir /.bashrc e adicionar a seguinte linha a ele, depois fazer logout e retornar.

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

Neste ponto, a instalação do OpenCV está concluída. Abra o terminal e tente:

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

Possíveis problemas

(1) Erros freqüentemente aparecem ao fazer compilações opencv. O que eu encontrei é:

	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*

Em seguida, passe novamente.

(2) O teste pode ser feito após a instalação

cd ~ / opencv-3.4.1 Encontrei os seguintes 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

A solução é:

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

Se ainda não puder ser resolvido, a possível razão é que os privilégios de root são usados ​​ao compilar e instalar opencv e exportar variáveis ​​de ambiente, e o programa é chamado aqui como um usuário normal, portanto, os arquivos relevantes não podem ser encontrados.

Adicione no final de ~ / .bash_profile:

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

Faça login no sistema novamente, compile o programa e tenha sucesso.
Então, a instalação do OpenCV-Python no Fredora está basicamente concluída, e pronto.
Verifique a página de resumo do artigo https://blog.csdn.net/weixin_44237705/article/details/107864965
Mais informações técnicas do openvino podem ser trocadas no grupo ~
Insira a descrição da imagem aqui

Acho que você gosta

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