1. Introdução
- Este blog é uma continuação do blog anterior sobre compilação cruzada de harfbuzz, freetype, opencv (incluindo WITH_QT) no Ubuntu e portabilidade para a placa de desenvolvimento Linux . Ao compilar o opencv antes, o suporte a python não foi adicionado, mas a versão c++ do opencv foi compilada de forma cruzada.
- Para compilação cruzada python da placa de desenvolvimento arm-linux, consulte o blog: No ubuntu, baseado na plataforma Qt, chame o arquivo python e faça a compilação cruzada na placa de desenvolvimento linux incorporada para execução .
- Porque opencv suportado por python requer a biblioteca numpy. Para compilar cruzadamente a biblioteca de terceiros python numpy, você pode consultar o blog: Embedded Linux Development Board, compilar cruzadamente a biblioteca de terceiros python numpy por meio de crossenv .
2. Processo de compilação
- Primeiro adicione BUILD_opencv_python3.
- Em seguida, adicione o caminho relevante do python compilado cruzadamente no cmake. A versão python que compilei aqui é python3.6. Preste atenção ao excluir os caminhos relacionados do python2 que vem com o cmake.
- Clique no botão Configurar.
Há um problema aqui : as bibliotecas e o caminho de instalação do python não são reconhecidos.
- Encontre o motivo lendo CMakeLists.txt de python3 em opencv:
cd /home/book/opencvarm/opencv-4.5.5/modules/python/python3
vi CMakeLists.txt
Nota : Em vez de usar PYTHON3_INCLUDE_DIR para adicionar o caminho de inclusão python3 , você deve usar PYTHON3 INCLUDE PATH . Então adicione PYTHON3 INCLUDE PATH.
- E para a biblioteca do python3
cd /home/book/opencvarm/opencv-4.5.5/modules/python
vi common.cmake
Você pode ver que PYTHON3 LIBRARIES deve ser usado em vez de PYTHON3 LIBRARY . Então adicione BIBLIOTECAS PYTHON3.
- Configure novamente e o reconhecimento será bem-sucedido.
-
Além disso, o erro /home/book/arm-python/bin/python3.6m: Exec format error aparecerá durante make . Como o arquivo executável /bin/python3 aqui é da arquitetura arm, mas estamos operando no Ubuntu, ele deve ser substituído pelo arquivo executável python3 da arquitetura x86_64. Então basta alterá-lo para o arquivo executável python3 no seu Ubuntu. Para encontrar o caminho python3, use o comando:
which python3
. -
resultado
cd /home/book/opencvarm/opencv-4.5.5/tmp/lib/python3.6/site-packages/cv2/python-3.6