opencv4 python3原始碼安裝

2021-10-09 03:11:56 字數 3914 閱讀 8989

環境:ubuntu16.04 anaconda3 

新建乙個虛擬環境(不需要的可以跳過這一步):

conda create -n learn python=3.6.2
在這個虛擬環境安裝numpy:

pip install numpy
安裝環境依賴項:

sudo apt-get install build-essential cmake unzip pkg-config
$ wget -o opencv.zip 

$ wget -o opencv_contrib.zip

cd ~/opencv-4.0.0

mkdir build

cd build

用cmake 進行編譯,可以設定的引數有很多,可以自行查一下,這邊我們是給python3.6生成動態鏈結,需要設定好python3_executable等路徑(路徑一定要正確,不然無法生成鏈結):

cmake -d opencv_enable_nonfree=on \

-d build_opencv_python3=yes \

-d build_opencv_python2=no \

-d python3_executable=~/anaconda3/envs/learn/bin/python3.6m \

-d python3_include_dir=~/anaconda3/envs/learn/include/python3.6m \

-d python3_library=~/anaconda3/envs/learn/lib/libpython3.6m.so \

-d python3_numpy_include_dirs=~/anaconda3/envs/learn/lib/python3.6/site-packages/numpy/core/include \

-d python3_packages_path=~/anaconda3/envs/learn/lib/python3.6/site-packages\

-d python_default_executable=~/anaconda3/envs/learn/bin/python3.6m ..

如果成功,會有很長一串輸出,找一下類似下面的輸出,確認一下路徑是否正確:

--   python 3:

-- interpreter: /home/qogori/anaconda3/envs/learn/bin/python3.6m (ver 3.6.2)

-- libraries: /home/qogori/anaconda3/envs/learn/lib/libpython3.6m.so (ver 3.6.2)

-- numpy: /home/qogori/anaconda3/envs/learn/lib/python3.6/site-packages/numpy/core/include (ver 1.19.1)

-- packages path: /home/qogori/anaconda3/envs/learn/lib/python3.6/site-packages

-- -- python (for build): /home/qogori/anaconda3/envs/learn/bin/python3.6m

之後,

make -j4
如果順利則編譯完畢,安裝:

sudo make install
$cd /usr/local/python/cv2/python-3.6

$ ls

cv2.cpython-36m-x86_64-linux-gnu.so

$ sudo mv cv2.cpython-36m-x86_64-linux-gnu.so cv2.so

將符號鏈結繫結到python:

$ cd ~/anaconda3/envs/learn/lib/python3.6/site-packages

$ ln -s /usr/local/python/cv2/python-3.6/cv2.so cv2.so

此時已經成功。可以看一下當前該虛擬環境下opencv的版本:

$ python

python 3.6.2 |anaconda, inc.| (default, oct 5 2017, 07:59:26)

[gcc 7.2.0] on linux

>>> import cv2

>>> cv2.__version__

'4.0.0'

>>> quit()

編譯的時候,可能會出現的錯誤:

一:~/opencv_contrib-4.0.0/modules/xfeatures2d/src/boostdesc.cpp:653:37: fatal error: boostdesc_bgm.i: 沒有那個檔案或目錄:

二:~/opencv_contrib-4.0.0/modules/xfeatures2d/test/test_rotation_and_scale_invariance.cpp:7:82: fatal error: features2d/test/test_detectors_invariance.impl.hpp: 沒有那個檔案或目錄

解決方案:

將opencv-4.0.0/modules/features2d/test/下的檔案

test_descriptors_invariance.impl.hpp

test_descriptors_regression.impl.hpp

test_detectors_invariance.impl.hpp

test_detectors_regression.impl.hpp

test_invariance_utils.hpp

拷貝到opencv_contrib-4.0.0/modules/xfeatures2d/test/下

將opencv_contrib-4.0.0/modules/xfeatures2d/test/test_features2d.cpp檔案裡

#include "features2d/test/test_detectors_regression.impl.hpp"

#include "features2d/test/test_descriptors_regression.impl.hpp"

改為

#include "test_detectors_regression.impl.hpp"

#include "test_descriptors_regression.impl.hpp"

將opencv_contrib-4.0.0/modules/xfeatures2d/test/test_rotation_and_scale_invariance.cpp檔案裡

#include "features2d/test/test_detectors_invariance.impl.hpp" 

#include "features2d/test/test_descriptors_invariance.impl.hpp"

改為

#include "test_detectors_invariance.impl.hpp"

#include "test_descriptors_invariance.impl.hpp"

python3換源 Python3 換源

pip安裝源 介紹2 常用pip源 豆瓣 阿里 3 加速安裝的命令 pip install i 模組名 永久配置安裝源 windows 2 新建 pip 資料夾並在資料夾中新建 pip.ini 配置檔案 3 新增 pip.ini 配置檔案內容 macos linux 1 在使用者根目錄下 下建立 p...

python換源 python3 換源

1.原因 pip是很強大的模組安裝工具,但是由於國外官方pypi經常被牆,導致不可用。所以我們最好是更換pip源,這樣就能解決被牆導致的裝不上庫的問題。2.可用源 網上有很多可用的源 豆瓣 清華 清華大學的pip源,它是官網pypi的映象,每隔5分鐘同步一次,推薦使用。3.使用 3.1 臨時使用 可...

python3 OpenCV 按鈕事件

我寫的部落格目的有兩點,一是我需要的知識可以隨時查用 二是像我一樣的菜鳥級少走少繞圈的路,因為大神會假設你會懂英文,看起來很簡單的就略過了,所以我只好 畫蛇添足 了。我在網上查了一下,發現python3沒有opencv滑鼠相應事件,所以我只好貼過來,方便對英文不熟悉的菜鳥 因為我也是菜鳥的滴 參考一...