2010-02-03 30 views
6

No puedo ejecutar el ejemplo de programas Python. Al ejecutar el comando Python "desde opencv import cv" aparece el mensaje "ImportError: ningún módulo llamado _cv". Hay un _cv.pyd obsoleto en el directorio de paquetes de sitio, pero no _cv.py en ninguna parte. Vea el paso 5 a continuación.OpenCV 2.0 y Python

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

Esto es lo que he hecho.

  1. Descargué y ejecuté el instalador de MS Windows para OpenCV2.0.
  2. descargado e instalado CMake
  3. descargado e instalado el TRAGO
  4. Ran CMake. Después de desmarcar "ENABLE_OPENMP" en la GUI de CMake, pude construir OpenCV usando INSTALL.vcproj y BUILD_ALL.vcproj. No sé cuál es la diferencia, así que construí todo bajo los dos archivos del proyecto. Los programas de ejemplo C funcionan bien.
  5. Contenido copiado de OpenCV2.0/Python2.6/lib/site-packages en mi directorio Python2.6/lib/site-packages instalado. Observé que contiene un antiguo _cv.pyd y un antiguo libcv.dll.a.
+2

A partir de la versión 2.0, OpenCV en realidad viene con dos juegos separados de enlaces de Python. El valor predeterminado es el "nuevo" enlace de Python; los enlaces SWIG anteriores están deshabilitados por defecto cuando se usa CMake. Como las nuevas vinculaciones son incompletas y las antiguas son dolorosas de usar, es un desastre y no me sorprendería que sigas teniendo problemas más allá de este. – ezod

+2

¿Por qué, por qué, por qué las potencias de Python continuamente rompen todo? Cada nueva versión es una pesadilla. Imagínese si todos los martes cuando salen los parches del sistema operativo Windows, tuviera que convencer a todos sus proveedores de software para que crearan nuevas versiones de sus cosas, y luego tuviera que instalar las nuevas versiones y cambiar todos sus programas para enlazarlos. –

+1

¿Los enlaces "nuevos" para Python 2.6, o solo Python 3.0? –

Respuesta

3

Después del Paso 1 (Instalador) solo copie el contenido de C:\OpenCV2.0\Python2.6\Lib\site-packages en C:\Python26\Lib\site-packages (ruta de instalación estándar asumida). Eso es todo.

Si ha instalado una cámara web puede probar la camshift.demo en C:\OpenCV2.0\samples\python

El material en desuso (C:\OpenCV2.0\samples\swig_python) no funciona en este momento como alguien escribió anteriormente. La gente de OpenCV está trabajando en eso. Aquí está la imagen 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

¿Ha habido algún progreso en esto? –

+0

Funciona bien con 2.2. Gracias. – Wok

4

Debe instalar opencv utilizando python dist utils. Esto se puede lograr por ir al directorio OpenCV, y escribiendo:

python setup.py install 

Editar:

OPENCV utiliza distutils, pero un tanto indirecta. En UNIX la instalación es más a lo largo de las líneas de:

configure 
make -j 8 
make install 

Para Windows, el método más sencillo es probablemente para descargar el instalador, tanto como el método más sencillo para Linux es utilizar un gestor de paquetes para instalar la aplicación. No puede simplemente copiar OpenCV en la ruta python y hacer que las cosas funcionen, ya que depende de una cantidad de bibliotecas C que deben compilarse.

Me imagino que el instalador de Windows instalaría binarios (en lugar de tener que compilar todo, y probablemente sea malo usar el instalador y compilar todo usted mismo). En cualquier caso, no copie los archivos usted mismo, realice una instalación make o use el instalador.

¡Buena suerte con OpenCV, y espero que disfrutes de usarlo!

+0

Intenté eso. Setup.py no existe en ningún lugar en los directorios de OpenCV. –

+1

El instalador de Windows para OpenCV 2.0 requiere una compilación desde el origen. Solo unos pocos programas de ejemplo se envían en forma ejecutable, y esos son MinGW, no VC++. Tienes que compilar todas las bibliotecas. Tuve peleas con eso también. Estoy perdido en cuanto a qué hacer con los ganchos de Python. Supongo que viviré sin ellos. –

1

Como Roger ya explicó, la situación fue bastante confusa por un tiempo. El motivo fue que opencv pasó de implementar C solo a una implementación mixta de C y C++ en opencv2. Esto causa dolores de cabeza para todas las envolturas, incluidas las de pitón.Entonces, por favor, no se quejen de que los chicos de pitón "sigan rompiendo cosas", porque no lo hicieron. (por cierto, la única incompatibilidad importante en python fue entre 2 y 3, y esto fue bien publicitado).

La buena noticia es que alguien está tratando de arreglar este desastre envolviendo opencv2 con impulso. No lo he usado extensamente todavía, pero se ve muy bien en este momento. http://code.google.com/p/pyopencv/ Funciona en python2 en este momento, pero ya es 99% compatible con python3.

PS no es un buen estilo para mantener un registro de su progreso en las respuestas a una pregunta de stackoverflow: Agregue una respuesta cuando lo haya resuelto.