https://blog.csdn.net/qianbin3200896/article/details/107894029python
python3.69好像不被opencv4.5支持,反正最後python3.69不能用能夠換成 opencv4.4.c++
從github上下載最新的opencvgit
https://github.com/opencv/opencv/tagsgithub
下載完opencv之後再下載opencv_contrib算法
https://github.com/opencv/opencv_contrib/tagsubuntu
將opencv_contrib文件夾移動到opencv文件夾裏。而後在opencv文件夾裏創建build文件夾,以下圖所示:小程序
接下來打開終端。進入build文件夾,而後安裝環境依賴:bash
4.5的庫網絡
sudo apt-get install build-essential sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main" sudo apt update sudo apt install libjasper1 libjasper-dev
4.4的庫app
sudo apt-get update sudo apt-get install -y build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev sudo apt-get install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev sudo apt-get install -y python2.7-dev python3.6-dev python-dev python-numpy python3-numpy python3 -m pip install --upgrade pip #直接裝不了找不到 sudo apt-get install -y libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev sudo add-apt-repository "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe" sudo apt update sudo apt-get install -y libjasper1 libjasper-dev sudo apt-get install -y libdc1394-22-dev sudo apt-get install -y libv4l-dev v4l-utils qv4l2 v4l2ucp sudo apt-get install -y curl #後面用到 sudo apt-get install -y cmake-gui sudo apt-get update
這裏可能遇到一個問題
libjasper-dev找不到,修改源
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main" sudo add-apt-repository "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe" sudo apt update sudo apt install libjasper1 libjasper-dev
接下來爲了安裝方便不容易出錯,建議使用cmake-gui安裝,安裝命令以下:
sudo apt-get install cmake-gui
安裝完畢打開cmake-gui,命令:
cmake-gui
在Where is the source code:選擇opencv目錄位置,在Where to build the binaries:選擇build位置以下圖所示:
選擇完畢點擊Configure,而後會彈出編譯器選項,選擇Unix Makefiles便可。
配置完畢以下圖所示:
根據我的須要使用用cuda
若是要用cuda
WITH cuda 必選
其他兩個非必須
若是是jetson nx板子 須要制定顯卡計算能力,手動選擇 add entry 建立這個參數
找到BUILD_opencv_world,不要(反正每次選了這個總有一些之外 py3沒法使用)
找到在CMAKE_BUILD_TYPE 值處輸入RELEASE,根據須要是否編譯DEBUG,其餘保持不變;
通常只要 Release
找到OPENCV_ENABLE_NONFREE,在後面的方框點上勾(有的算法有專利,不點這個不能用,好比sift);
找到OPENCV_EXTRA_MODULES_PATH,選擇opencv_contrib文件夾中的modules文件夾,注意是modules文件夾(個人路徑是/home/qianbin/opencv/opencv_contrib/modules)。
找到後面的方框點上勾;
確保安裝了numpy,沒有安裝就安裝,而後關閉cmake從新的打開
根據須要是否取消python2的編譯,找到BUILD_opencv_python2,後面方框點溝掉;
點擊Add Entry,添加BUILD_opencv_python3,開啓python3的編譯。
(opencv4.5 滅有自動出現BUILD_opencv_python3,雖然手動添加但最後python3.69找不到。opencv4.4的源碼卻自動出現BUILD_opencv_python3,不知道是本版支持問題,仍是由於前面選擇了opencv_world致使的)
其餘python路徑是開始自動讀取的,覈對下
下圖是4.4的選擇
其餘選擇
WITH_GSTREAMER
WITH_LIBV4L
CMAKE_INSTALL_PREFIX 安裝路徑
樣例是否編譯看本身,通常可不用(我本身編譯了)
BUILD_TESTS=OFF
BUILD_PERF_TESTS=OFF
BUILD_EXAMPLES=OFF
完成以上工做再點擊Configure,耐心等一等,若是上面還有紅色的再點擊Configure,之到沒有紅色爲止。
Configure完成以後點擊Generate,等一等便可。
建議先去看額外出錯,不容易下載的東西先下載好放在指定文件目錄,省去由於這個出錯
正常狀況下,等Generate完成以後,咱們能夠直接在build目錄下輸入命令:
make
(我在來聯想y7000 UBUNTU1804 開啓某牆模式下,他自動下載了不用管。)
進行編譯工做了。實際上這樣極可能出錯,我在編譯了10分鐘後報錯了,出錯的緣由通常都是說缺乏什麼文件,缺乏的文件主要是Cmake在配置時因爲網絡很差沒下載下來。我在位於build下的CmakeDownloadLog.txt能夠查看到有哪些文件下載失敗。常常下載失敗的文件我上傳到了網盤,
這些文件我整理了百度網盤便於下載
連接:https://pan.baidu.com/s/1h1geuNg9bdDNiRNpJ6Dq_w
提取碼:zht4
第一批文件,手動下放在相對路徑
opencv-4.5.1/build/downloads/xfeatures2d
第二批文件 -測試樣例所需的人臉模型文件
/opencv-4.5.1/build/share/opencv4/testdata/cv/face/"
若是沒有務必拷貝到build目錄下的downloads/xfeatures2d文件夾裏。我在安裝時還有一個文件face_landmark_model.dat沒有下載成功,將該文件放到build目錄下的/share/opencv4/testdata/cv/face目錄下,若是沒有目錄可自行創建。檢查拷貝完畢,最好再次Configure一下,直到沒有上面沒有紅色爲止,而後再點擊Generate。若是不放心能夠再次檢查日誌。
最後在build目錄下從新輸入命令:
make
上述過程須要十幾分鍾甚至更長(取決於機器性能),編譯不出錯完成以後,出現下圖所示界面:
接下來在build目錄下輸入命令:
sudo make install
便可安裝。最後全部文件將被安裝到目錄「/usr/local/」下面。
安裝完成後,手動建立opencv.pc:
cd /usr/local/lib sudo mkdir pkgconfig && cd pkgconfig sudo gedit opencv.pc
而後添加:
prefix=/usr/local exec_prefix=${prefix} includedir=/usr/local/include libdir=/usr/local/lib Name: OpenCV Description: Open Source Computer Vision Library Version: 4.4.0 Libs: -L${exec_prefix}/lib -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dpm -lopencv_face -lopencv_photo -lopencv_freetype -lopencv_fuzzy -lopencv_hdf -lopencv_hfs -lopencv_img_hash -lopencv_line_descriptor -lopencv_optflow -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_text -lopencv_dnn -lopencv_plot -lopencv_xfeatures2d -lopencv_shape -lopencv_video -lopencv_ml -lopencv_ximgproc -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_flann -lopencv_xobjdetect -lopencv_imgcodecs -lopencv_objdetect -lopencv_xphoto -lopencv_imgproc -lopencv_core Libs.private: -ldl -lm -lpthread -lrt Cflags: -I${includedir}
更改環境變量,輸入命令:
sudo gedit /etc/bash.bashrc
打開以後,在文件最後面添加如下內容:
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
保存退出,opencv基本上就安裝完成了。經過 pkg-config 查看 opencv 版本:
pkg-config --modversion opencv
小程序測試
找到 opencv-4.5.1/samples/cpp/example_cmake 目錄下,官方已經給出了一個cmake的example,咱們能夠拿來測試下。按順序執行:
cmake . make ./opencv_example
便可看到打開了攝像頭,在左上角有一個hello opencv ,即表示配置成功。
安裝完成後進行python測試
4.5沒成功,我直接裝了 pip install python-opencv 裝了擴展庫
4.4 jetson nx板子安裝成功
python3直接調用
c++須要配置下到系統,而後能夠調用
推薦之後用4.4 +擴展庫 編譯。