This page looks best with JavaScript enabled

Ubuntu 20.04 LTSにOpenCV 4.2.0をインストールする

 ·   ·  ☕ 3 min read  ·  ✍️ coriander

はじめに

How to install OpenCV 4.2.0 with CUDA 10.1 on Ubuntu 20.04 LTS(Forcal Fossa)に書いてあることをほぼ真似して,Ubuntu 20.04 LTSにOpenCV 4.2.0をインストールした.

OpenCVをインストール

必要なライブラリをインストール

いつもの儀式

1
2
sudo apt update
sudo apt upgrade

汎用パッケージをインストール

1
sudo apt install build-essential cmake pkg-config unzip yasm git checkinstall

画像関係のライブラリをインストール

1
sudo apt install libjpeg-dev libpng-dev libtiff-dev

動画,音声関係のライブラリをインストール

1
2
3
4
5
sudo apt install libavcodec-dev libavformat-dev libswscale-dev libavresample-dev
sudo apt install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
sudo apt install libxvidcore-dev x264 libx264-dev libfaac-dev libmp3lame-dev libtheora-dev 
sudo apt install libfaac-dev libmp3lame-dev libvorbis-dev
sudo apt install libopencore-amrnb-dev libopencore-amrwb-dev

カメラ関係のライブラリをインストール

1
2
3
4
sudo apt-get install libdc1394-22 libdc1394-22-dev libxine2-dev libv4l-dev v4l-utils
cd /usr/include/linux
sudo ln -s -f ../libv4l1-videodev.h videodev.h
cd ~

GTKライブラリをインストール

1
sudo apt install libgtk-3-dev

Python関係のライブラリをインストール

1
2
3
sudo apt install python3-dev python3-pip
sudo -H pip3 install -U pip numpy
sudo apt install python3-testresources

並列処理のライブラリをインストール

1
sudo apt install libtbb-dev

最適化のためのライブラリをインストール

1
sudo apt install libatlas-base-dev gfortran

その他ライブラリをインストール

1
sudo apt install libprotobuf-dev protobuf-compiler libgoogle-glog-dev libgflags-dev libgphoto2-dev libeigen3-dev libhdf5-dev doxygen

ソースコードをダウンロード & build

OpenCVのソースコードをGitHubからダウンロードする.
今回は~/opencv/にソースコードをダウンロードした.

1
2
3
4
5
6
cd ~
mkdir -p opencv && cd opencv
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.2.0.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.2.0.zip
unzip opencv.zip
unzip opencv_contrib.zip

virtualenvで仮想環境を立ててOpenCVのインストールを進める.
今回はCUDAをOFFにしてbuildした.
cmake-D OPENCV_EXTRA_MODULES_PATHは,ダウンロードしたopencv_contrib-4.2.0modulesディレクトリまでのパスを指定する.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
sudo pip3 install virtualenv virtualenvwrapper
sudo rm -rf ~/.cache/pip
echo "add following 3 lines to your .bashrc"
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh

mkvirtualenv cv -p python3
pip install numpy

cd ~/opencv/opencv-4.2.0
mkdir build && cd build

cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_C_COMPILER=/usr/bin/gcc \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_C_EXAMPLES=OFF \
-D WITH_TBB=ON \
-D WITH_CUDA=OFF \
-D BUILD_opencv_cudacodec=OFF \
-D ENABLE_FAST_MATH=1 \
-D CUDA_FAST_MATH=1 \
-D WITH_CUBLAS=1 \
-D WITH_V4L=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=ON \
-D WITH_GSTREAMER=ON \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D OPENCV_PC_FILE_NAME=opencv.pc \
-D OPENCV_ENABLE_NONFREE=ON \
-D OPENCV_PYTHON3_INSTALL_PATH=~/.virtualenvs/cv/lib/python3.8/site-packages \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv/opencv_contrib-4.2.0/modules \
-D PYTHON_EXECUTABLE=~/.virtualenvs/cv/bin/python \
-D BUILD_EXAMPLES=ON ..

cmakeがエラーなく完了したらmake, installを行う.
makeのオプションの数字はCPUのコア数を指定する.
わからない場合はnprocでコア数を確認できる.

1
2
make -j4
sudo make install

pathを通す.

1
2
3
sudo /bin/bash -c 'echo "/usr/local/lib" >> /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig
sudo cp -r ~/.virtualenvs/cv/lib/python3.8/site-packages/cv2 /usr/local/lib/python3.8/dist-packages

opencv_versionと打って,4.2.0と表示されたら,成功!

動作確認

サンプルプログラムを使って,C++でOpenCVの動作確認を行う.

画像を表示するプログラムを作成

画像を表示するプログラムを作成する.
今回はsample.cppというファイル名でプログラムを作成した.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char** argv )
{
    if ( argc != 2 )
    {
        printf("usage: DisplayImage.out <Image_Path>\n");
        return -1;
    }
    Mat image;
    image = imread( argv[1], 1 );
    if ( !image.data )
    {
        printf("No image data \n");
        return -1;
    }
    namedWindow("Display Image", WINDOW_AUTOSIZE );
    imshow("Display Image", image);
    waitKey(0);
    return 0;
}

CMakeLists.txtを作成

サンプルプログラムを実行するためにCmakeLists.txtを作成する.

1
2
3
4
5
6
cmake_minimum_required(VERSION 2.8)
project( samaple )
find_package( OpenCV REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS} )
add_executable( sample sample.cpp )
target_link_libraries( sample ${OpenCV_LIBS} )

実行可能ファイルを作成

1
2
3
mkdir build && cd build
cmake ..
make

プログラムを実行

引数に画像を指定してプログラムを実行させる.

1
./sample example.png

新しいウィンドウに指定した画像が表示されたら成功!

参考

Share on

coriander
WRITTEN BY
coriander
student