1. 程式人生 > 其它 >如何安裝opencv4到ubuntu18.04

如何安裝opencv4到ubuntu18.04

如何安裝opencv4到ubuntu18.04

查找了相當一部分的資料後終於成功編譯好了opencv(C++)

引言

網上很多教程其實不能完全編譯好opencv4.0.0這個版本,當你開始編譯自己的opencv時,各種問題會隨之而來,比如編譯的時候出現缺少靜態連結庫,甚至有的時候編譯原始碼時名稱空間有問題都得自己更改。所以寫這篇文章時為了讓更多的人避免一些坑我會細細地講解一下編譯的過程

第一步選擇作業系統和語言

我選擇的時ubuntu18.04,不同作業系統所需的庫不同,我只實驗了ubuntu18.04,並且我只針對用c++編寫,所以使用python或java的朋友,需要查閱相關資料。(注意不要使用虛擬機器)

第二步聯網

安裝環境需要連線真正的網際網路,否則下載安裝包的速度會非常的慢,甚至會失敗,所以找到一個好的代理伺服器是必須的。

第三步安裝環境

建立一個資料夾--opencv

mkdir opencv && cd opencv
nano opencv_environment.sh

複製下面內容到opencv_environment.sh

echo "OpenCV installation by learnOpenCV.com"
# Define OpenCV Version to install 
cvVersion="master"
# Create directory for installation
mkdir installation
mkdir installation/OpenCV-"$cvVersion"
# Save current working directory
cwd=$(pwd)
sudo apt -y update
sudo apt -y upgrade
sudo apt -y remove x264 libx264-dev

## Install dependencies
sudo apt -y install build-essential checkinstall cmake pkg-config yasm
sudo apt -y install git gfortran
sudo apt -y install libjpeg8-dev libpng-dev

sudo apt -y install software-properties-common
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt -y update

sudo apt -y install libjasper1
sudo apt -y install libtiff-dev

sudo apt -y install libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev
sudo apt -y install libxine2-dev libv4l-dev
cd /usr/include/linux
sudo ln -s -f ../libv4l1-videodev.h videodev.h
cd "$cwd"

sudo apt -y install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
sudo apt -y install libgtk2.0-dev libtbb-dev qt5-default
sudo apt -y install libatlas-base-dev
sudo apt -y install libfaac-dev libmp3lame-dev libtheora-dev
sudo apt -y install libvorbis-dev libxvidcore-dev
sudo apt -y install libopencore-amrnb-dev libopencore-amrwb-dev
sudo apt -y install libavresample-dev
sudo apt -y install x264 v4l-utils
sudo apt-get -y install libvtk7-dev

# Optional dependencies
sudo apt -y install libprotobuf-dev protobuf-compiler
sudo apt -y install libgoogle-glog-dev libgflags-dev
sudo apt -y install libgphoto2-dev libeigen3-dev libhdf5-dev doxygen
sudo apt -y install python3-dev python3-pip
sudo -H pip3 install -U pip numpy
sudo apt -y install python3-testresources
# Fix failed to load module “canberra-gtk-module”
sudo apt install libcanberra-gtk-module libcanberra-gtk3-module
# install qtcreator
sudo apt-get install qtcreator -y

給指令碼執行許可權並執行

chmod +x opencv_environment.sh
./opencv_environment.sh

第四步下載opencv4.0.0和opencv4.0.0_contrib-4.0.0(在opencv資料夾中)

wget "https://github.com/opencv/opencv/archive/4.0.0.tar.gz" -O opencv.tar.gz
wget "https://github.com/opencv/opencv_contrib/archive/4.0.0.tar.gz" -O opencv_contrib.tar.gz
# 解壓到本地
tar -zxvf opencv.tar.gz
tar -zxvf opencv_contrib.tar.gz

第五步編譯opencv4.0.0

在opencv檔案中建立一個指令碼

nano opencv_build.sh

複製以下內容到opencv_build.sh

rm -rf build
mkdir build && cd build
cmake -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.0.0/modules ../opencv-4.0.0 -DOPENCV_GENERATE_PKGCONFIG=ON -DWITH_TBB=ON -DWITH_V4L=ON -DWITH_QT=ON -DWITH_VTK=ON -DWITH_OPENGL=ON #打開了qt和opengl模組,可以用qt和opengl的庫
make -j8 #-j8代表8個執行緒編譯
make install

給opencv_build.sh執行許可權

chmod +x opencv_build.sh

先別急著執行,在opencv_contrib-4.0.0中對應的qt模組原始碼有一處錯誤,這個錯誤會導致你在編譯到68%的時候報錯,原因是沒有使用正確的名稱空間。
到這個檔案下面opencv/opencv_contrib-4.0.0/modules/cvv/src/qtutil/filter
有一個名叫 sobelfilterwidget.cpp 的原始檔在第11行下面新增一行 using namespace std; 即可

執行opencv_build.sh

./opencv_build.sh

緊接著就靜靜等待安裝完成,

一些細節

編譯完後安裝的根目錄是/usr/local/
/usr/local/bin - executable files
/usr/local/lib - libraries (.so)
/usr/local/cmake/opencv4 - cmake package
/usr/local/include/opencv4 - headers
/usr/local/share/opencv4 - other files (e.g. trained cascades in XML format)

總結

內容有很多細節沒有講,但都在文章裡面,opencv對初學者不是很友好,本人也是花了將近一個月的時間,不停的換作業系統,不停的在虛擬機器和真機中切換,最後發現很多東西虛擬機器和真機有不同,所以勸朋友們最好不要使用虛擬機器,直接使用真機。不同的作業系統需要的環境不同,理論上按照上面的步驟是可以配置成功的,但實際上本人只在ubuntu18.04這個版本上成功過。時代在發展,本教程只做參考。

如果遇到問題請郵件聯絡或者在下方留言
郵箱:[email protected]