一、安裝前準備
在安裝opencv之前,需要確保系統中已經安裝了必要的依賴項。下面是一些必須的依賴項:
sudo apt-get update
sudo apt-get upgrade
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 libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
二、下載源碼
opencv的源代碼可以從官方網站上進行下載。為了下載最新版本,我們可以使用以下命令:
cd ~/
wget -O opencv.zip https://github.com/opencv/opencv/archive/master.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/master.zip
unzip opencv.zip
unzip opencv_contrib.zip
三、編譯和安裝
接下來,我們需要進入解壓後的目錄並新建一個目錄作為編譯輸出目錄:
cd ~/opencv-master/
mkdir build
cd build/
然後,我們使用cmake來配置opencv的編譯過程。在這個過程中,我們還需要指定安裝目錄(這裡假設為/usr/local)以及其它選項。
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-master/modules \
-D BUILD_opencv_python3=ON \
-D PYTHON_DEFAULT_EXECUTABLE=/usr/bin/python3 \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D WITH_OPENGL=ON \
-D ENABLE_NEON=ON \
-D ENABLE_VFPV3=ON \
-D BUILD_TESTS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D BUILD_EXAMPLES=OFF ..
CMake 配置選項的意義:
- CMAKE_BUILD_TYPE: 編譯類型:Release或者Debug
- CMAKE_INSTALL_PREFIX: 安裝目錄
- OPENCV_EXTRA_MODULES_PATH: 需要載入的opencv附加模塊路徑
- BUILD_opencv_python3: 是否編譯python3支持
- PYTHON_DEFAULT_EXECUTABLE: python可執行文件默認路徑
- WITH_TBB: 線程並發庫TBB
- WITH_V4L: Video4linux
- WITH_OPENGL: OpenGL支持
- ENABLE_NEON: NEON指令集優化
- ENABLE_VFPV3: VFPV3指令集優化
- BUILD_TESTS: 是否編譯opencv測試程序
- BUILD_PERF_TESTS: 是否編譯opencv性能測試程序
- BUILD_EXAMPLES: 是否編譯opencv示常式序
配置完成之後,可以使用以下命令進行編譯和安裝:
make -j$(nproc)
sudo make install
四、測試安裝
為了驗證安裝是否成功,可以在Python或C++中使用opencv代碼編寫一個demo程序。
以下是Python示例代碼:
import cv2
cap = cv2.VideoCapture(0)
while(True):
ret, frame = cap.read()
cv2.imshow('frame', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
編譯運行上述代碼應該能夠成功打開攝像頭,並顯示圖像。
五、總結
經過上述步驟,我們已經成功地安裝了opencv,並編寫了一個簡單的demo程序對其進行驗證。
原創文章,作者:LIOTG,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/332486.html