參考 Install OpenCV 3 with Python 3 on Windows
-
下載 Microsoft Visual C++ 2015 Redistributable。也可以直接安裝 Visual Studio 2015 Community
-
依照 Python 版本與 x86/x64 下載已經預先編譯好的 numpy 與 opencv3.1
Python 3.5.2 (x86) 的環境下
numpy-1.11.2rc1+mkl-cp35-cp35m-win32.whl opencv_python-3.1.0-cp35-cp35m-win32.whl
-
開啟 cmd 使用 pip 安裝剛剛下載的檔案
pip install "numpy-1.11.2rc1+mkl-cp35-cp35m-win32.whl" pip install "opencv_python-3.1.0-cp35-cp35m-win32.whl"
-
測試
開啟 cmd 執行 pytho
Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:01:18) [MSC v.1900 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import cv2 >>> print(cv2.__version__) 3.1.0 >>> exit()
- Python3
- OpenCV 3.1.0
可參考 Install OpenCV 3.0 with Python 3.4 on OSX & Ubuntu
git clone https://github.com/yyuu/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
安裝 Python 3.5.2
pyenv 會下載 Python 原始碼來編譯,所以要設定參數讓他在編譯的時候順便編譯 shared library
env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.5.2
編譯完畢之後下
ls $HOME/.pyenv/versions/3.5.2/lib
應該會看到以下的檔案被編譯出來
libpython3.5m.so libpython3.5m.so.1.0 libpython3.so pkgconfig python3.5
安裝編譯所需要的 packages
# Ubuntu
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
# 下載 OpenCV3
wget https://github.com/opencv/opencv/archive/3.1.0.tar.gz
tar -zxvf 3.1.0.tar.gz
rm 3.1.0.tar.gz
# 下載 OpenCV3-contrib
wget https://github.com/opencv/opencv_contrib/archive/3.1.0.tar.gz
tar -zxvf 3.1.0.tar.gz
rm 3.1.0.tar.gz
# 設定使用 python3 與 python packages
pyenv local 3.5.2
pip install numpy
進入 opencv-3.1.0
cd opencv-3.1.0
下面可以建立一個 script 檔案,會比較方便執行。
當然也可以直接複製貼上,但是要注意一下下面 PYTHON_INCLUDE_DIR
等的路徑是否填寫正確。
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.1.0/modules \
-D BUILD_EXAMPLES=OFF \
-D INSTALL_C_EXAMPLES=OFF \
-D PYTHON3_EXECUTABLE=$HOME/.pyenv/shims/python \
-D PYTHON_INCLUDE_DIR=$HOME/.pyenv/versions/3.5.2/include/python3.5m \
-D PYTHON_LIBRARY=$HOME/.pyenv/versions/3.5.2/lib/libpython3.5m.so \
-D ENABLE_PRECOMPILED_HEADERS=OFF \
..
cmake 產生的訊息中,注意 Python3 這邊是否有正確的找到 Python shared library 的路徑
-- Python 3:
-- Interpreter: /home/tester/.pyenv/shims/python3 (ver 3.5.2)
-- Libraries: /home/swind/.pyenv/versions/3.5.2/lib/libpython3.5m.so (ver 3.5.2)
-- numpy: /home/swind/.pyenv/versions/3.5.2/lib/python3.5/site-packages/numpy/core/include (ver 1.11.1)
-- packages path: lib/python3.5/site-packages
make -j4
make install
在 opencv3.1.0 中的 build/lib
資料夾中應該會有 cv2.cpython-35m-x86_64-linux-gnu.so
將此檔案複製到 $HOME/.pyenv/versions/3.5.2/lib/python3.5/cv2.so
這樣 pyenv 中的 Python 3.5.2 就能找到 cv2 這個 package
cp lib/python3/cv2.cpython-35m-x86_64-linux-gnu.so /home/tester/.pyenv/versions/3.5.2/lib/python3.5/cv2.so
import cv2
cv2.__version__
#=> '3.1.0'