1. インストールの準備
インストールの前に、必要な依存関係をいくつかダウンロードする必要があります。opencv のバージョンが異なると依存関係も異なります。詳細については、公式 Web サイトの opencv インストールを参照してください。
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 libjasper-dev libdc1394-22-dev
よくある問題: libjasper-dev が見つからない
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev
2.opencvをインストールする
sudo apt-get install git
git clone https://github.com/opencv/opencv.git
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_GTK=ON -D OPENCV_GENERATE_PKGCONFIG=YES OPENCV_EXTRA_MODULES_PATH=/home/edy/opencv-4.8.0/opencv_contrib-4.8.0/modules/ ..
OPENCV_GENERATE_PKGCONFIG=YES: OpenCV の pkgconfig ファイルが自動的に生成されることを示します。それ以外の場合は、手動で生成する必要があります。
opencv_contrib のディレクトリはコンピュータに応じて変更する必要があります
コンパイルしてインストールする
make -j
sudo make install
3. 環境変数の設定
1. OpenCV ライブラリをシステム パスに追加します
1: ld.so.conf ファイルを設定します
sudo gedit /etc/ld.so.conf
ファイルに行を追加します
include /etc/ld.so.conf.d/*.conf
include /usr/local/lib
2: opencv.conf ファイルを手動で生成する
sudo gedit /etc/ld.so.conf.d/opencv.conf
内容は以下の通りです
/usr/local/lib
上記 2 つの方法を設定した後、次のコマンドを実行して、設定したパスを有効にします。
sudo ldconfig
3: opencv4.pc ファイルを生成する
sudo touch /usr/local/lib/pkgconfig/opencv4.pc
内容は以下の通りです
# Package Information for pkg-config
prefix=/usr/local
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir_old=${prefix}/include/opencv4/opencv2
includedir_new=${prefix}/include/opencv4
Name: OpenCV
Description: Open Source Computer Vision Library
Version: 4.8.0
Libs: -L${exec_prefix}/lib -lopencv_gapi -lopencv_stitching -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dpm -lopencv_face -lopencv_freetype -lopencv_fuzzy -lopencv_hfs -lopencv_img_hash -lopencv_line_descriptor -lopencv_quality -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_superres -lopencv_optflow -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_text -lopencv_dnn -lopencv_plot -lopencv_videostab -lopencv_video -lopencv_xfeatures2d -lopencv_shape -lopencv_ml -lopencv_ximgproc -lopencv_xobjdetect -lopencv_objdetect -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_flann -lopencv_xphoto -lopencv_photo -lopencv_imgproc -lopencv_core
Libs.private: -ldl -lm -lpthread -lrt
Cflags: -I${includedir_old} -I${includedir_new}
cmakeを選択するとOpenCVのpkgconfigファイルが自動生成されるため、システムbashの設定を行います。/usr/local/lib/pkgconfigパスにファイルが存在することを確認し、以下のコマンドを実行します。
sudo gedit /etc/bash.bashrc
本文の最後に追加
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
保存して終了し、次のコマンドを実行して構成を有効にします。
source /etc/bash.bashrc
バージョンを見る
pkg-config --modversion opencv4
pkg-config --cflags opencv4
pkg-config --libs opencv4
ファイルを書き込んで試してみる
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
Mat srcImage = imread("opencv.jpg");
imshow("Display Image window",srcImage);
waitKey(0);
return 0;
}
画像をcppと同階層のディレクトリに置き、コンパイルします。
g++ `pkg-config opencv4 --cflags` demo.cpp -o demo `pkg-config opencv4 --libs`
./demo を実行するだけです