2012-07-13 15 views
6

Quindi sto pensando a quale linguaggio utilizzare nello sviluppo di un'app che utilizza OpenCV. Come parte della mia decisione, sono interessato a sapere quanto sia facile/difficile includere la libreria opencv nell'app finale. Mi piacerebbe davvero scrivere questo in python perché i collegamenti opencv sono fantastici, python è facile, ecc.Packaging OpenCV con un'applicazione python

Ma non sono stato in grado di trovare una risposta chiara su cose come "py2app fa automaticamente bundle opencv quando vede la linea cv di importazione "(penso di no) e se no, allora c'è un modo noto per farlo?

In generale, mi piacerebbe sapere il modo migliore per distribuire un'applicazione desktop python con opencv.

+0

Il problema che ho riscontrato usando Python con OpenCV è che non ci sono tanti tutorial, quindi è necessario fare molto affidamento sulla documentazione. –

risposta

1

Ho effettivamente confezionato, distribuito e spedito un'applicazione Python utilizzando OpenCV con cxFreeze.

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

Sì, cxFreeze auto prese l'estensioni Python per OpenCV. Ho dovuto copiare manualmente le DLL OpenCV (Windows), ma quello era un problema minore che può essere risolto da un passaggio post-elaborazione in cxFreeze. Raccoglie altre DLL, quindi non sono sicuro di quale fosse il problema.

In effetti, ha funzionato così bene che sono rimasto sorpreso. L'unica cosa che non ha raccolto correttamente era una libreria QT. Fondamentalmente qui sono stati i miei passi (sto usando QT in modo ignorare che una parte se non sei):

  1. cxfreeze App.py --target-dir App --base-nome Win32GUI --include moduli PySide .QtNetwork
  2. Copia sui file opencv \ build \ x86 \ vc9 \ bin nella directory App.

Questo è tutto.

+0

Ho provato a fare lo stesso e sto completamente fallendo. Ti dispiacerebbe condividere la tua riga di comando setup.py & cxfreeze? – mz2

0

Si può dare un'occhiata a http://www.pyinstaller.org/ È grandioso e pacchetti la dll necessaria per opencv.

Per opencv per funzionare py2exe anche pacchetto numpy. Assicurati di aggiungere una dipendenza per questo nel caso in cui stai usando py2exe.