developer tip

Python 3.3 용 opencv 설치

copycodes 2020. 12. 24. 23:51
반응형

Python 3.3 용 opencv 설치


OpenCV는 여전히 Python 3.3에서 사용할 수 없으며 실제로 사용하려면 Python 2.7로 다운 그레이드해야합니까? 나는 인터넷에서 그것에 대해 많이 찾지 못했고, OpenCV가 아직 Python 3.x에서 사용되도록 포팅되지 않은 2012의 일부 게시물 만있었습니다. 하지만 지금은 2014 년이고 최신 OpenCV 2.4.x를 설치하고 cv2.pyd파일을 C : \ Program Files (x86) \ Python333 \ Lib \ site-packages에 복사 한 후에도 여전히 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.

편집 : 먼저 새로운 pip 방법을 시도하십시오.

Windows : pip3 install opencv-python opencv-contrib-python

Ubuntu : sudo apt install python3-opencv

또는 아래에서 빌드 지침을 계속하십시오.

참고 : 원래 질문은 OpenCV + Python 3.3 + Windows를 요청하는 것이 었습니다. 그 이후로 Python 3.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 빌드

CMake 플래그

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 버전의 문제를 해결하는 방법을 살펴 보지 않았습니다.

설치 스크립트

# Clone OpenCV somewhere
# I'll put it into $HOME/code/opencv
OPENCV_DIR="$HOME/code/opencv"
OPENCV_VER="3.1.0"
git clone https://github.com/opencv/opencv "$OPENCV_DIR"
# This'll take a while...

# Now lets checkout the specific version we want
cd "$OPENCV_DIR"
git checkout "$OPENCV_VER"

# First OpenCV will generate the files needed to do the actual build.
# We'll put them in an output directory, in this case "release"
mkdir release
cd release

# Note: This is where you'd add build options, like TBB support or custom Python versions. See above sections.
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local "$OPENCV_DIR"

# At this point, take a look at the console output.
# OpenCV will print a report of modules and features that it can and can't support based on your system and installed libraries.
# The key here is to make sure it's not missing anything you'll need!
# If something's missing, then you'll need to install those dependencies and rerun the cmake command.

# OK, lets actually build this thing!
# Note: You can use the "make -jN" command, which will run N parallel jobs to speed up your build. Set N to whatever your machine can handle (usually <= the number of concurrent threads your CPU can run).
make
# This will also take a while...

# Now install the binaries!
sudo make install

기본적으로 install스크립트는 사용할 Python의 사용자 지정 버전을 지정한 경우에도 일부 시스템 위치에 Python 바인딩을 배치합니다. 수정은 간단합니다. 로컬의 바인딩에 심볼릭 링크를 넣으십시오 site-packages.

ln -s /usr/local/lib/python3.5/site-packages/cv2.cpython-35m-x86_64-linux-gnu.so $HOME/.pyenv/versions/3.5.2/lib/python3.5/site-packages/

첫 번째 경로는 빌드하기 위해 설정 한 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)

예, Python 3 지원은 현재 버전에서는 아직 사용할 수 없지만 버전 3.0에서는 사용할 수 있습니다 (이 티켓 참조) . 파이썬 3이 개발 버전을 사용 해보고 싶다면 GitHub에서 다운로드 할 수 있습니다 .

수정 (2015/07/18) : 버전 3.0이 출시되었으며 이제 Python 3 지원이 공식적으로 제공됩니다.


여기에 대한 해결책이 있습니다 (아래 링크의 'cp34'에서 볼 수 있다고 생각합니다) Python 3.4.

http://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv로 이동합니다 .

적절한 .whl을 다운로드하십시오.

.whl이 저장된 디렉토리로 이동하십시오.

pip를 사용하여 .whl을 설치합니다. 예 :pip install opencv_python-3.0.0-cp34-none-win_amd64.whl

그런 다음 import cv2.


pip 애플리케이션을 사용하십시오. Windows에서는 찾을 수 있으며 Python3/Scripts/pip.exeUbuntu에서는 apt-get install python3-pip. 따라서 명령 줄을 사용합니다.

pip3 install --upgrade pip

pip3 install opencv-python

Windows에서는 pip3 대신 pip.exe 만 사용합니다.


평판이 부족 하여 midopa의 훌륭한 답변 에 대해 언급 할 수 없습니다 .

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/

그때,

make -j8

기계가 처리 할 수있는 스레드 수를 8로 변경하여 작업 속도를 높입니다.

sudo make install

Python이 찾을 수 있도록 파일에 PYTHONPATH환경 변수를 추가했습니다 .~/.bash_profilecv2.so

PYTHONPATH="${PYTHONPATH}:/usr/local/lib/python3.4/site-packages”
export PYTHONPATH

[PyCharm을 사용하는 경우 Preferences> Project Structure> Add Content Root로 이동하여 cv2.so의 상위 디렉토리에 경로를 추가했습니다 . /usr/local/lib/python3.4/site-packages]

이 명령으로 다음과 같은 과거 오류가 발생했습니다.

Could NOT find 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

당신이 얻지 않으면 다 좋다 ImportError: No module named 'cv2'

이 작업은 Macbook Pro Retina 15 "2013, Mavericks 10.9.4, Python 3.4.1 (이전 공식 다운로드 에서 설치 ), opencv3 소스에서 작동했습니다. 도움이 되었기를 바랍니다.


나는 이것이 오래된 스레드라는 것을 알고 있지만 누군가 가보고있는 경우를 대비하여 El Capitan에서 작업하는 방법은 다음과 같습니다.

brew install opencv3 --with-python3

완료 될 때까지 잠시 기다리십시오.

그런 다음 필요에 따라 다음을 실행합니다.

brew unlink opencv

그런 다음 마지막 단계로 다음을 실행하십시오.

brew ln opencv3 --force

이제 import cv2python 3.x 스크립트에서 아무 문제없이 실행할 수 있습니다 .


python3 바인딩 및 가상 환경을 사용하여 OSX에서 opencv 3.0을 작동시키는 데 많은 문제가있었습니다. 다른 답변은 많은 도움이되었지만 여전히 약간의 시간이 걸렸습니다. 이것이 다음 사람에게 도움이되기를 바랍니다. 이것을에 저장하십시오 build_opencv.sh. 그런 다음 opencv를 다운로드 하고 아래 쉘 스크립트에서 변수를 수정하고 손가락을 교차하여 실행하십시오 ( . ./build_opencv.sh). 디버깅을 위해 다른 게시물, 특히 James Fletchers를 사용하십시오 .

opencv lib dir을 PYTHONPATH에 추가하는 것을 잊지 마십시오.

참고-많은 기능이 이동 된 opencv-contrib도 다운로드됩니다. 또한 문서와는 다른 네임 스페이스에서 참조됩니다. 예를 들어 SIFT는 이제 cv2.xfeatures2d.SIFT_create에 있습니다. 으악.

#!/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.

Spent 3 hours trying the various options on Ubuntu 14.04LTS mentioned here and in another referenced tutorial to no avail. For a while tried with OpenCV3.0.0 but eventually switched to 3.1.0. The following worked:

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 \
.

output:

--   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):      

And with virtualenv used the following cmake options:

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 \
.

If you have issues with ffmpeg includes add the following to remove video support:

-D WITH_FFMPEG=OFF \
-D WITH_GSTREAMER=OFF \
-D WITH_V4L=OFF \
-D WITH_1394=OFF \

Also take heed of the warning from cmake about using make clean. If you ran make clean you might have to uncompress the original package anew. Cmake is dead, long live the Cmake


A full instruction relating to James Fletcher's answer can be found here

Particularly for Anaconda distribution I had to modify it this way:

 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 ..

Last line can be ommited (see link above)


If you're down here... I'm sorry the other options didn't workout. Try this:

conda install -c menpo opencv3

from Step 1 of Scivision's Tutorial. If that doesn't work, then go on to Step 2:

(Windows only) OpenCV 3.2 pip install

Download OpenCV .whl file here. The packages that mention contrib in their name include OpenCV-extra packages. For example, assuming you have Python 3.6, you might download opencv_python-3.2.0+contrib-cp36-none-win_amd64.whl to get the OpenCV-extra packages.

Then, from Command Prompt:

pip install opencv_python-3...yourVersion...win_amd64.whl

Note that the ...win_amd64.whl wheels packages from step 2 in that tutorial are meant for AMD chips.


Someone has published a docker container / file for this:

https://github.com/vipul-sharma20/docker-opencv3-python3

https://hub.docker.com/r/vipul20/docker-opencv3-python3/~/dockerfile/

You can pull the image directly from docker hub or follow the instructions in the Dockerfile to install.


Whether or not you install opencv3 manually or from Gohlke's whl package, I found the need to create/edit the file cv.py in site_packages as follows to make compatable with old code:

import cv2 as cv

You can use the following command on the command prompt (cmd) on Windows:

py -3.3 -m pip install opencv-python

I made a video on how to install OpenCV Python on Windows in 1 minute here:

https://www.youtube.com/watch?v=m2-8SHk-1SM

Hope it helps!

ReferenceURL : https://stackoverflow.com/questions/20953273/install-opencv-for-python-3-3

반응형