Tabla de contenido
1. Introducción
- Este blog es una continuación del blog anterior sobre la compilación cruzada de harfbuzz, freetype, opencv (incluido CON_QT) en Ubuntu y su portabilidad a la placa de desarrollo de Linux . Al realizar una compilación cruzada de opencv antes, no se agregó compatibilidad con Python, pero la versión c ++ de opencv se compiló de forma cruzada.
- Para la compilación cruzada de Python de la placa de desarrollo arm-linux, consulte el blog: En ubuntu, basado en la plataforma Qt, llame al archivo python y compílelo en la placa de desarrollo de Linux incorporada para ejecutarlo .
- Porque opencv compatible con Python requiere la biblioteca numpy. Para realizar una compilación cruzada de la biblioteca de terceros de Python numpy, puede consultar el blog: Placa de desarrollo de Linux integrada, realice una compilación cruzada de la biblioteca de terceros de Python numpy a través de crossenv .
2. Proceso de compilación
- Primero agregue BUILD_opencv_python3.
- Luego agregue la ruta relevante del Python compilado de forma cruzada en cmake. La versión de Python que compilé aquí es python3.6. Preste atención a eliminar las rutas relacionadas de python2 que vienen con cmake.
- Haga clic en el botón Configurar.
Hay un problema aquí : las bibliotecas de Python y la ruta de instalación no se reconocen.
- Encuentre el motivo leyendo CMakeLists.txt de python3 en opencv:
cd /home/book/opencvarm/opencv-4.5.5/modules/python/python3
vi CMakeLists.txt
Nota : En lugar de usar PYTHON3_INCLUDE_DIR para agregar la ruta de inclusión de python3 , debe usar PYTHON3 INCLUDE PATH . Entonces agregue PYTHON3 INCLUDE PATH.
- Y para la biblioteca de python3
cd /home/book/opencvarm/opencv-4.5.5/modules/python
vi common.cmake
Puede ver que se deben usar PYTHON3 LIBRARIES en lugar de PYTHON3 LIBRARY . Entonces agregue BIBLIOTECAS PYTHON3.
- Configure nuevamente y el reconocimiento será exitoso.
-
Además, el error /home/book/arm-python/bin/python3.6m: Exec format error aparecerá durante make . Debido a que el archivo ejecutable /bin/python3 aquí es de arquitectura arm, pero estamos operando en ubuntu, debe reemplazarse por el archivo ejecutable python3 de arquitectura x86_64. Entonces simplemente cámbielo al archivo ejecutable python3 en su ubuntu. Para encontrar la ruta de Python3, use el comando:
which python3
. -
resultado
cd /home/book/opencvarm/opencv-4.5.5/tmp/lib/python3.6/site-packages/cv2/python-3.6