2012-07-13 13 views
6

Así que estoy contemplando qué lenguaje usar en el desarrollo de una aplicación que use OpenCV. Como parte de mi decisión, me interesa saber qué tan fácil/difícil es incluir la biblioteca de OpenCV en la aplicación final. Realmente me gustaría escribir esto en python porque los enlaces opencv son geniales, Python es fácil, etc.Empaquetado de OpenCV con una aplicación de Python

Pero no he podido encontrar una respuesta clara sobre cosas como "py2app empaqueta automáticamente opencv cuando ve la línea de importación de cv "(creo que no) y si no, ¿hay alguna forma conocida de hacerlo?

En general, me gustaría saber la mejor manera de distribuir una aplicación de escritorio python con opencv.

+0

El problema que he encontrado al usar Python con OpenCV es que no hay tantos tutoriales, por lo que debe confiar mucho en la documentación. –

Respuesta

1

He empacado, implementado y enviado una aplicación de Python con OpenCV con cxFreeze.

http://cx-freeze.sourceforge.net/

Sí, cxFreeze automático recogió las extensiones de Python a OpenCV. Tuve que copiar manualmente las DLL de OpenCV (Windows), pero ese fue un problema menor que puede resolverse mediante un paso de post-procesamiento en cxFreeze. Recoge otras DLL, por lo que no estoy seguro de cuál fue el problema.

De hecho, funcionó tan bien que me sorprendió. Lo ÚNICO que no retomó correctamente fue una biblioteca de QT. Básicamente aquí eran mis pasos (estoy usando QT por lo que ignorar esa parte si no está):

  1. cxfreeze App.py --target-dir-App --base nombre Win32GUI --include módulos PySide .QtNetwork
  2. Copie los archivos opencv \ build \ x86 \ vc9 \ bin en el directorio de la aplicación.

Eso es todo.

+0

He intentado hacer lo mismo y estoy fallando por completo. ¿Te importaría compartir tu línea de comandos de configuración setup.py & cxfreeze? – mz2

0

Puede echar un vistazo a http://www.pyinstaller.org/ Es genial y empaqueta el dll necesario para opencv.

Para que opencv funcione, py2exe también empaqueta numpy. Asegúrese de agregar una dependencia en caso de que esté utilizando py2exe.

Cuestiones relacionadas