環境: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滑鼠相應事件,所以我只好貼過來,方便對英文不熟悉的菜鳥 因為我也是菜鳥的滴 參考一...