2010-02-03 23 views
6

Non riesco a ottenere l'esempio dei programmi Python da eseguire. Quando si esegue il comando Python "da opencv import cv" viene visualizzato il messaggio "ImportError: nessun modulo chiamato _cv". C'è una _cv.pyd stantio nella directory dei pacchetti del sito, ma nessun _cv.py è ovunque. Vedere il passaggio 5 di seguito.OpenCV 2.0 e Python

MS Windows XP, VC++ 2008, Python 2.6, OpenCV 2.0

Ecco quello che ho fatto.

  1. Scaricato ed eseguito il programma di installazione di MS Windows per OpenCV2.0.
  2. scaricato e installato CMake
  3. scaricato e installato SWIG
  4. Ran CMake. Dopo aver deselezionato "ENABLE_OPENMP" nella GUI di CMake, sono riuscito a creare OpenCV usando INSTALL.vcproj e BUILD_ALL.vcproj. Non so qual è la differenza, quindi ho creato tutto sotto entrambi i file di progetto. I programmi di esempio C funzionano correttamente.
  5. Contenuto copiato di OpenCV2.0/Python2.6/lib/site-packages nella directory Python2.6/lib/site-packages installata. Ho notato che contiene un vecchio _cv.pyd e un vecchio libcv.dll.a.
+2

A partire dalla versione 2.0, OpenCV viene fornito con due set separati di collegamenti Python. L'impostazione predefinita è il "nuovo" binding Python; i vecchi binding SWIG sono disabilitati di default quando si usa CMake. Dato che i nuovi attacchi sono incompleti e quelli vecchi sono dolorosi da usare, è un bel casino e non sarei sorpreso se continuassi ad avere problemi oltre questo. – ezod

+2

Perché, perché, perché i poteri Python-che-essere continuamente rompono tutto? Ogni nuova versione è un incubo. Immaginate se ogni martedì quando escono le patch del SO Windows, doveste convincere tutti i vostri fornitori di software a creare nuove versioni delle loro cose, e quindi avete dovuto installare le nuove versioni e cambiare tutti i vostri programmi per legarli con loro. –

+1

I "nuovi" collegamenti per Python 2.6 o solo per Python 3.0? –

risposta

3

Dopo il passaggio 1 (programma di installazione) è sufficiente copiare il contenuto di C:\OpenCV2.0\Python2.6\Lib\site-packages in C:\Python26\Lib\site-packages (percorso di installazione standard presupposto). Questo è tutto.

Se avete una webcam installata si può provare la camshift.demo in C:\OpenCV2.0\samples\python

La roba deprecato (C:\OpenCV2.0\samples\swig_python) non funziona in questo momento come qualcuno ha scritto sopra. Le persone di OpenCV ci stanno lavorando. Ecco l'immagine completa:

31/03/10 (hopefully) Next OpenCV Official Release: 2.1.0 is due March 31st, 2010. link://opencv.willowgarage.com/wiki/Welcome/Introduction#Announcements

04/03/10 [james]rewriting samples for new Python 5:36 PM Mar 4th
via API link://twitter.com/opencvlibrary

12/31/09 We've gotten more serious about OpenCV's software engineering. We now have a full C++ and Python interface. link://opencv.willowgarage.com/wiki/OpenCV%20Monthly

9/30/09 Several (actually, most) SWIG-based Python samples do not work correctly now. The reason is this problem is being investigated and the intermediate update of the OpenCV Python package will be released as soon as the problem is sorted out. link://opencv.willowgarage.com/wiki/OpenCV%20Monthly

+0

Ci sono stati progressi in questo? –

+0

Funziona bene con 2.2. Grazie. – Wok

4

Si consiglia di installare opencv utilizzando python dist utils. Questo può essere realizzato andando alla directory OpenCV, e digitando:

python setup.py install 

Edit:

OpenCV utilizza distutils, ma un po 'indirettamente. In UNIX l'installazione è più lungo le linee di:

configure 
make -j 8 
make install 

Per Windows, l'approccio più semplice è probabilmente quello di scaricare il programma di installazione, così come l'approccio più semplice per Linux è quello di utilizzare un gestore di pacchetti per installare l'applicazione. Non puoi semplicemente copiare OpenCV nel percorso Python e fare in modo che funzioni, poiché si basa su un certo numero di librerie C che devono essere compilate.

Immagino che il programma di installazione di Windows installerebbe i binari (piuttosto che dover compilare tutto, e probabilmente è male usare l'installer e compilare tutto da solo). In ogni caso, non copiare i file da soli, effettuare un'installazione make o utilizzare il programma di installazione.

Buona fortuna con OpenCV, e spero che vi piaccia usarlo!

+0

Provato. Setup.py non esiste da nessuna parte nelle directory OpenCV. –

+1

Il programma di installazione di Windows per OpenCV 2.0 richiede la compilazione dall'origine. Solo alcuni programmi di esempio vengono spediti in forma eseguibile e quelli sono MinGW, non VC++. Devi compilare tutti i librerie. Ho litigato anche con quello. Sono perso su cosa fare con i ganci Python. Credo che vivrò senza di loro. –

1

Come già spiegato Roger, la situazione è stata abbastanza confusa per un po '. Il motivo era che opencv si spostava da una sola implementazione in C a un'implementazione mista in C e C++ in opencv2. Questo provoca mal di testa per tutti i wrapper, inclusi quelli di pitone.Quindi per favore non lamentarti del fatto che i pitone "continuano a rompere le cose", perché non lo facevano. (A proposito, l'unica incompatibilità sempre maggiore in Python era tra 2 e 3, e questo era ben pubblicizzato).

La buona notizia è che qualcuno sta cercando di risolvere questo problema spostando opencv2 con boost. Non l'ho ancora usato in modo estensivo, ma ora sembra molto buono. http://code.google.com/p/pyopencv/ Funziona in python2 in questo momento, ma è già compatibile al 99% con python3.

PS non è un buon stile tenere un registro dei tuoi progressi nelle risposte a una domanda di stackoverflow: aggiungi una risposta quando l'hai risolta.