安装适用于Python 3.3的opencv

安装适用于Python 3.3的opencv,python,opencv,python-3.x,Python,Opencv,Python 3.x,OpenCV还不能用于Python 3.3吗?我真的必须降级到Python 2.7才能使用它吗?我在互联网上没有找到太多关于它的信息,只有2012年的一些帖子说OpenCV还没有移植到Python3.x中使用。但现在是2014年,在尝试安装最新的OpenCV 2.4.x并将cv2.pyd文件复制到C:\Program Files(x86)\Python333\Lib\site软件包后,仍然会在Python IDLE中产生错误: >>> import cv2 Traceback

OpenCV还不能用于Python 3.3吗?我真的必须降级到Python 2.7才能使用它吗?我在互联网上没有找到太多关于它的信息,只有2012年的一些帖子说OpenCV还没有移植到Python3.x中使用。但现在是2014年,在尝试安装最新的OpenCV 2.4.x并将
cv2.pyd
文件复制到C:\Program Files(x86)\Python333\Lib\site软件包后,仍然会在Python IDLE中产生错误:

>>> import cv2
Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    import cv2
ImportError: DLL load failed: %1 ist keine zulässige Win32-Anwendung.
导入cv2 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 进口cv2 导入错误:DLL加载失败:%1是keine zulässige Win32 Anwendung。
是的,对Python 3的支持在当前版本中仍然不可用,但将从版本中提供。如果您真的想让Python3使用开发版本,您可以下载它

编辑(18/07/2015):
3.0版现已发布,编辑:首先尝试新的pip方法:

Windows:
pip3安装opencv python opencv contrib python

Ubuntu:
sudoapt安装python3opencv

或者继续下面的构建说明

注意:最初的问题是询问OpenCV+Python3.3+Windows。从那时起,Python3.5已经发布。此外,我在大多数开发中都使用Ubuntu,所以很遗憾,这个答案将集中在这个设置上

OpenCV 3.1.0+Python 3.5.2+Ubuntu 16.04是可能的!这是怎么做的

这些步骤复制(并稍作修改)自:

先决条件 安装所需的依赖项,并可以选择在系统上安装/更新某些库:

# Required dependencies
sudo apt install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
# Dependencies for Python bindings
# If you use a non-system copy of Python (eg. with pyenv or virtualenv), then you probably don't need to do this part
sudo apt install python3.5-dev libpython3-dev python3-numpy
# Optional, but installing these will ensure you have the latest versions compiled with OpenCV
sudo apt install libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
构建OpenCV 克马克旗 有几个标志和选项可以调整OpenCV的构建。可能有关于它们的全面文档,但这里有一些有用的有趣标志。它们应包含在
cmake
命令中:

# Builds in TBB, a threading library
-D WITH_TBB=ON
# Builds in Eigen, a linear algebra library
-D WITH_EIGEN=ON
使用非系统级Python版本 如果您有多个Python版本(例如,使用pyenv或virtualenv),那么您可能希望根据某个Python版本进行构建。默认情况下,OpenCV将为系统版本的Python构建。您可以通过将这些参数添加到脚本后面看到的
cmake
命令中来改变这一点。实际值将取决于您的设置。我使用
pyenv

-D PYTHON_DEFAULT_EXECUTABLE=$HOME/.pyenv/versions/3.5.2/bin/python3.5
-D PYTHON_INCLUDE_DIRS=$HOME/.pyenv/versions/3.5.2/include/python3.5m
-D PYTHON_EXECUTABLE=$HOME/.pyenv/versions/3.5.2/bin/python3.5
-D PYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.5m.so.1
CMake Python错误消息 CMakeLists文件将尝试检测要构建的各种Python版本。如果您在这里有不同的版本,它可能会混淆。上述参数可能只“修复”了一个版本Python的问题,而不是另一个版本。如果你只关心那个特定的版本,那么就没什么好担心的了

不幸的是,我没有研究如何解决其他Python版本的问题

安装脚本 第一个路径将取决于要构建的Python版本。第二个问题取决于自定义版本的Python所在的位置

试试看! 好的,让我们试试吧

ipython

Python 3.5.2 (default, Sep 24 2016, 13:13:17) 
Type "copyright", "credits" or "license" for more information.

IPython 5.1.0 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: import cv2

In [2]: img = cv2.imread('derp.png')
i
In [3]: img[0]
Out[3]: 
array([[26, 30, 31],
       [27, 31, 32],
       [27, 31, 32],
       ..., 
       [16, 19, 20],
       [16, 19, 20],
       [16, 19, 20]], dtype=uint8)

由于缺乏声誉,我不能评论米多帕的出色表现

在Mac上,我(最终)使用以下命令成功安装了opencv:

cmake -D CMAKE_BUILD_TYPE=RELEASE 
-D CMAKE_INSTALL_PREFIX=/usr/local 
-D PYTHON_EXECUTABLE=/Library/Frameworks/Python.framework/Versions/3.4/bin/python3 
-D PYTHON_LIBRARY=/Library/Frameworks/Python.framework//Versions/3.4/lib/libpython3.4m.dylib 
-D PYTHON_INCLUDE_DIR=/Library/Frameworks/Python.framework/Versions/3.4/include/python3.4m 
-D PYTHON_NUMPY_INCLUDE_DIRS=/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/numpy/core/include/numpy 
-D PYTHON_PACKAGES_PATH=/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages 
/relative/path/to/source/directory/
那么

将机器可以处理的线程数更改为8,以加快速度

sudo make install
我在我的
~/.bash_profile
文件中添加了一个
PYTHONPATH
环境变量,以便Python可以找到
cv2.so

PYTHONPATH="${PYTHONPATH}:/usr/local/lib/python3.4/site-packages”
export PYTHONPATH
[对于那些使用PyCharm的人,我必须进入“首选项”>“项目结构”>“添加内容根目录”,并将路径添加到
cv2.so
的父目录:
/usr/local/lib/python3.4/site packages
]

此命令使我克服了以下错误:

无法通过显式声明python库路径找到PythonLibs

ld: can't link with a main executable for architecture x86_64
collect2: error: ld returned 1 exit status
make[2]: *** [lib/cv2.so] Error 1
make[1]: *** [modules/python2/CMakeFiles/opencv_python2.dir/all] Error 2
make: *** [all] Error 2
通过显式指向libpython3.4m.dylib

在终端中,检查它是否与以下设备一起工作:

$python3
>>> import cv2
如果您没有得到
importorror:没有名为“cv2”的模块,那就太好了。


这在Macbook Pro Retina 15“2013、Mavericks 10.9.4、Python 3.4.1(以前从安装)上运行,来自源代码的opencv3。希望这对其他人有所帮助。

我在让opencv 3.0在OSX上使用python3绑定和虚拟环境时遇到了很多麻烦。其他答案帮助很大,但仍然需要一点。希望这将帮助下一个人。将此保存到
build_opencv.sh
。然后,修改下面s中的变量hell脚本,交叉手指,运行它(
。/build\u opencv.sh
)。要调试,请使用其他帖子,尤其是

别忘了将opencv lib dir添加到PYTHONPATH中

注意-这也下载了opencv contrib,其中许多函数都已被移动。它们现在也被不同于文档的名称空间引用-例如,SIFT现在位于cv2.xfeatures2d.SIFT_create.Uggh下

#!/bin/bash
# Install opencv with python3 bindings: https://stackoverflow.com/questions/20953273/install-opencv-for-python-3-3/21212023#21212023

# First download opencv and put in OPENCV_DIR

#
# Edit this section
#
PYTHON_DIR=/Library/Frameworks/Python.framework/Versions/3.4
OPENCV_DIR=/usr/local/Cellar/opencv/3.0.0
NUM_THREADS=8
CONTRIB_TAG="3.0.0"  # This will also download opencv_contrib and checkout the appropriate tag https://github.com/Itseez/opencv_contrib


#
# Run it
#

set -e  # Exit if error

cd ${OPENCV_DIR}

if  [[ ! -d opencv_contrib ]]
then
    echo '**Get contrib modules'
    [[ -d opencv_contrib ]] || mkdir opencv_contrib
    git clone git@github.com:Itseez/opencv_contrib.git .
    git checkout ${CONTRIB_TAG}
else
    echo '**Contrib directory already exists. Not fetching.'
fi

cd ${OPENCV_DIR}

echo '**Going to do: cmake'
cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D PYTHON_EXECUTABLE=${PYTHON_DIR}/bin/python3 \
    -D PYTHON_LIBRARY=${PYTHON_DIR}/lib/libpython3.4m.dylib \
    -D PYTHON_INCLUDE_DIR=${PYTHON_DIR}/include/python3.4m \
    -D PYTHON_NUMPY_INCLUDE_DIRS=${PYTHON_DIR}/lib/python3.4/site-packages/numpy/core/include/numpy \
    -D PYTHON_PACKAGES_PATH=${PYTHON_DIR}lib/python3.4/site-packages \
    -D OPENCV_EXTRA_MODULES_PATH=opencv_contrib/modules \
    -D BUILD_opencv_legacy=OFF  \
    ${OPENCV_DIR}


echo '**Going to do: make'
make -j${NUM_THREADS}

echo '**Going to do: make install'
sudo make  install

echo '**Add the following to your .bashrc: export PYTHONPATH=${PYTHONPATH}:${OPENCV_DIR}/lib'
export PYTHONPATH=${PYTHONPATH}:${OPENCV_DIR}/lib

echo '**Testing if it worked'
python3 -c 'import cv2'
echo 'opencv properly installed with python3 bindings!'  # The script will exit if the above failed.
这里是Python3.4的解决方案(我相信下面链接中的“cp34”可以看到)

下载相应的.whl

转到保存.whl的目录

使用pip安装.whl。例如,
pip安装opencv_python-3.0.0-cp34-none-win_amd64.whl


然后只需使用导入cv2即可找到与James Fletcher答案相关的完整说明

特别是对于Anaconda发行版,我不得不这样修改它:

 cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D PYTHON3_PACKAGES_PATH=/anaconda/lib/python3.4/site-packages/ \
    -D PYTHON3_LIBRARY=/anaconda/lib/libpython3.4m.dylib \
    -D PYTHON3_INCLUDE_DIR=/anaconda/include/python3.4m \
    -D INSTALL_C_EXAMPLES=ON \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D BUILD_EXAMPLES=ON \
    -D BUILD_opencv_python3=ON \
    -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules ..

最后一行可以修改(请参见上面的链接)

我知道这是一个旧线程,但为了防止有人看到,下面是我如何在El Capitan上使用它的:

brew安装opencv3--with-python3

然后等一会儿,等它结束

然后根据需要运行以下操作:

brew取消opencv链接

然后运行以下操作作为最后一步:

brew ln opencv3--force


现在,您应该可以在python 3.x脚本中运行导入cv2了。

花了3个小时在Ubuntu 14.04LTS上尝试这里提到的各种选项
$python3
>>> import cv2
#!/bin/bash
# Install opencv with python3 bindings: https://stackoverflow.com/questions/20953273/install-opencv-for-python-3-3/21212023#21212023

# First download opencv and put in OPENCV_DIR

#
# Edit this section
#
PYTHON_DIR=/Library/Frameworks/Python.framework/Versions/3.4
OPENCV_DIR=/usr/local/Cellar/opencv/3.0.0
NUM_THREADS=8
CONTRIB_TAG="3.0.0"  # This will also download opencv_contrib and checkout the appropriate tag https://github.com/Itseez/opencv_contrib


#
# Run it
#

set -e  # Exit if error

cd ${OPENCV_DIR}

if  [[ ! -d opencv_contrib ]]
then
    echo '**Get contrib modules'
    [[ -d opencv_contrib ]] || mkdir opencv_contrib
    git clone git@github.com:Itseez/opencv_contrib.git .
    git checkout ${CONTRIB_TAG}
else
    echo '**Contrib directory already exists. Not fetching.'
fi

cd ${OPENCV_DIR}

echo '**Going to do: cmake'
cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D PYTHON_EXECUTABLE=${PYTHON_DIR}/bin/python3 \
    -D PYTHON_LIBRARY=${PYTHON_DIR}/lib/libpython3.4m.dylib \
    -D PYTHON_INCLUDE_DIR=${PYTHON_DIR}/include/python3.4m \
    -D PYTHON_NUMPY_INCLUDE_DIRS=${PYTHON_DIR}/lib/python3.4/site-packages/numpy/core/include/numpy \
    -D PYTHON_PACKAGES_PATH=${PYTHON_DIR}lib/python3.4/site-packages \
    -D OPENCV_EXTRA_MODULES_PATH=opencv_contrib/modules \
    -D BUILD_opencv_legacy=OFF  \
    ${OPENCV_DIR}


echo '**Going to do: make'
make -j${NUM_THREADS}

echo '**Going to do: make install'
sudo make  install

echo '**Add the following to your .bashrc: export PYTHONPATH=${PYTHONPATH}:${OPENCV_DIR}/lib'
export PYTHONPATH=${PYTHONPATH}:${OPENCV_DIR}/lib

echo '**Testing if it worked'
python3 -c 'import cv2'
echo 'opencv properly installed with python3 bindings!'  # The script will exit if the above failed.
 cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D PYTHON3_PACKAGES_PATH=/anaconda/lib/python3.4/site-packages/ \
    -D PYTHON3_LIBRARY=/anaconda/lib/libpython3.4m.dylib \
    -D PYTHON3_INCLUDE_DIR=/anaconda/include/python3.4m \
    -D INSTALL_C_EXAMPLES=ON \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D BUILD_EXAMPLES=ON \
    -D BUILD_opencv_python3=ON \
    -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules ..
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D PYTHON3_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.4m.so \
-D PYTHON3_EXECUTABLE=/usr/bin/python3.4m \
-D PYTHON3_INCLUDE_DIR=/usr/include/python3.4m/ \
-D PYTHON_INCLUDE_DIR=/usr/include/python3.4m/ \
-D PYTHON3_INCLUDE_DIRS=/usr/include/python3.4m/ \
-D PYTHON_INCLUDE_DIRS=/usr/include/python3.4m/ \
-D BUILD_opencv_python3=ON \
.
--   OpenCV modules:
--     To be built:                 core flann imgproc ml photo video imgcodecs shape videoio highgui objdetect superres ts features2d calib3d stitching videostab python3
--     Disabled:                    java world
--     Disabled by dependency:      -
--     Unavailable:                 cudaarithm cudabgsegm cudacodec cudafeatures2d cudafilters cudaimgproc cudalegacy cudaobjdetect cudaoptflow cudastereo cudawarping cudev python2 viz

--   Python 3:
--     Interpreter:                 /usr/bin/python3.4m (ver 3.4.3)
--     Libraries:                   /usr/lib/x86_64-linux-gnu/libpython3.4m.so (ver 3.4.3)
--     numpy:                       /usr/lib/python3/dist-packages/numpy/core/include (ver 1.8.2)
--     packages path:               /usr/lib/python3/dist-packages
-- 
--   Python (for build):      
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=$VIRTUAL_ENV \
-D PYTHON3_EXECUTABLE=$VIRTUAL_ENV/bin/python3 \
-D PYTHON3_PACKAGES_PATH=$VIRTUAL_ENV/lib/python3.4/site-packages \
-D PYTHON3_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.4m.so \
-D PYTHON3_INCLUDE_DIR=$VIRTUAL_ENV/include/python3.4m \
-D PYTHON_INCLUDE_DIR=$VIRTUAL_ENV/include/python3.4m \
-D PYTHON3_INCLUDE_DIRS=$VIRTUAL_ENV/include/python3.4m \
-D PYTHON_INCLUDE_DIRS=$VIRTUAL_ENV/include/python3.4m \
-D BUILD_opencv_python3=ON \
.
-D WITH_FFMPEG=OFF \
-D WITH_GSTREAMER=OFF \
-D WITH_V4L=OFF \
-D WITH_1394=OFF \
import cv2 as cv
conda install -c menpo opencv3
pip install opencv_python-3...yourVersion...win_amd64.whl
py -3.3 -m pip install opencv-python
export MAKEFLAGS="-j8"
pip3 install opencv-python --no-cache-dir