OpenCV 2.0和Python

OpenCV 2.0和Python,python,opencv,Python,Opencv,我无法运行示例Python程序。在执行Python命令“from opencv import cv”时,我得到消息“ImportError:没有名为_cv的模块”。site packages目录中有一个过时的_cv.pyd,但任何地方都没有_cv.py。见下文第5步 微软视窗XP、VC++2008、Python 2.6、OpenCV 2.0 以下是我所做的 下载并运行了适用于OpenCV2.0的MS Windows安装程序 下载并安装CMake 下载并安装SWIG 拉克马克。在CMake GUI

我无法运行示例Python程序。在执行Python命令“from opencv import cv”时,我得到消息“ImportError:没有名为_cv的模块”。site packages目录中有一个过时的_cv.pyd,但任何地方都没有_cv.py。见下文第5步

微软视窗XP、VC++2008、Python 2.6、OpenCV 2.0

以下是我所做的

  • 下载并运行了适用于OpenCV2.0的MS Windows安装程序
  • 下载并安装CMake
  • 下载并安装SWIG
  • 拉克马克。在CMake GUI中取消选中“ENABLE_OPENMP”后,我能够使用INSTALL.vcproj和build_ALL.vcproj构建OpenCV。我不知道有什么区别,所以我在这两个项目文件下构建了所有内容。C示例程序运行良好
  • 已将OpenCV2.0/Python2.6/lib/site-packages的内容复制到我安装的Python2.6/lib/site-packages目录中。我注意到它包含一个旧的_cv.pyd和一个旧的libcv.dll.a

  • 您应该使用python dist utils安装opencv。这可以通过转到opencv目录并键入:

    python setup.py install
    
    编辑:

    openCV使用distutils,但有些间接。在UNIX上,安装过程大致如下:

    configure
    make -j 8
    make install
    
    对于Windows,最简单的方法可能是下载安装程序,就像Linux最简单的方法是使用软件包管理器安装应用程序一样。您不能只是将OpenCV复制到python路径中并让它工作,因为它依赖于大量需要编译的C库

    我可以想象windows安装程序会安装二进制文件(而不需要编译所有东西,而且使用安装程序自己编译所有东西可能不好)。在任何情况下,都不要复制自己的文件,或者进行安装,或者使用安装程序

    祝OpenCV好运,我希望你喜欢使用它

    在步骤1(安装程序)之后,只需将
    C:\OpenCV2.0\Python2.6\Lib\site软件包的内容复制到
    C:\Python26\Lib\site软件包
    (假定标准安装路径)。 就这些

    如果您安装了网络摄像头,可以在
    C:\OpenCV2.0\samples\python

    不推荐使用的东西(
    C:\OpenCV2.0\samples\swig\u python
    )目前无法像上面有人写的那样工作。OpenCV的人正在研究它。以下是全图:

    2010年3月31日(希望如此)下一个OpenCV官方版本:2.1.0将于3月发布 2010年11月31日。 link://opencv.willowgarage.com/wiki/Welcome/Introduction#Announcements

    2010年3月4日下午5点36分[james]为新Python重写示例3月4日下午5点36分
    通过APIlink://twitter.com/opencvlibrary

    2009年12月31日,我们对OpenCV的软件越来越认真 工程学。现在我们有一个完整的C++和Python接口。 link://opencv.willowgarage.com/wiki/OpenCV%20Monthly

    9/30/09一些(实际上,大多数)基于SWIG的Python示例不起作用 现在正确了。原因是该问题正在调查和解决中 OpenCV Python包的中间更新将发布 一旦问题解决了。 link://opencv.willowgarage.com/wiki/OpenCV%20Monthly


    罗杰已经解释过了,当时的情况相当混乱。原因在于OpenCV从一个C实现到了在OpenCV2中的混合C和C++实现。这会给所有包装器带来麻烦,包括python包装器。所以请不要抱怨python的家伙“不断破坏东西”,因为他们没有。(顺便说一句,python中唯一主要的不兼容是在2和3之间,这一点得到了很好的宣传)

    好消息是,有人正试图用boost包装opencv2来修复这一混乱局面。我还没有广泛使用它,但它现在看起来非常好。 它现在可以在python2中工作,但是它已经99%兼容python3了


    PS在回答stackoverflow问题时记录进度不是一种好的方式:在解决问题后添加一个答复。

    我发布了一个在Windows中安装OpenCV for Python的条目:
    它适用于OpenCV 2.2,但我认为它也适用于以前的版本。

    从2.0版开始,OpenCV实际上附带了两套独立的Python绑定。默认值是“新的”Python绑定;使用CMake时,默认情况下会禁用旧的SWIG绑定。由于新的绑定不完整,旧的绑定使用起来很痛苦,因此这是一个相当混乱的局面,如果您继续遇到超出此范围的问题,我也不会感到惊讶。为什么,为什么,为什么Python的强大功能会不断破坏一切?每一个新版本都是一场噩梦。想象一下,如果每周二Windows操作系统补丁发布时,你必须说服所有软件供应商为其产品创建新版本,然后你必须安装新版本并更改所有程序以与之绑定。是Python 2.6的“新”绑定,还是仅Python 3.0的绑定?我愿意再试一次。我认为我应该取消检查BUILD\u SWIG\u PYTHON\u支持。对我应该检查还是取消检查BUILD\u NEW\u PYTHON\u支持?试过了。Setup.py不存在于OpenCV目录中的任何位置。Windows installer for OpenCV 2.0需要从源代码处编译。只有少数示例程序是以可执行形式发布的,它们是MinGW,而不是VC++。你必须编译所有的图书馆。我也曾与之发生过争执。我不知道如何处理Python钩子。我想没有他们我会活下去的。这方面有什么进展吗?