Ubuntu22.04 で OpenCV をビルド & インストール
Ubuntu マシンで OpenCV プログラミングしたい
1. OpenCV をビルド & インストール (1 回目)
「Ubuntu OpenCV」など検索すると色んな記事が出てくるけど、公式の Installation in Linux を参考に OpenCV4.6.0 を g++ でビルド & インストールした
- 必要そうなパッケージをインストール
$ sudo apt update $ sudo apt upgrade $ sudo apt install -y cmake g++ wget unzip
- ソースコードを DL & 解凍
- ビルド用のディレクトリを作成して移動
$ mkdir -p build & cd build
- cmake 用の設定 (configure)
$ cmake ../opencv-4.6.0
- ビルド
$ cmake --build ./
- チェック
- build/bin と build/lib の中身を確認 → bin/opencv と lib/libopencv- がたくさんできてれば OK
$ ls bin $ ls lib
- OpenCVConfig*.cmake や OpenCVModules.cmake の存在を確認
$ ls OpenCVConfig*.cmake $ ls OpenCVModules.cmake
- build/bin と build/lib の中身を確認 → bin/opencv と lib/libopencv- がたくさんできてれば OK
- インストール
$ sudo make install
2. cpp サンプルを実行、OpenCV からウィンドウが表示されず
公式の Using OpenCV with gcc and Cmake を参考にサンプルコードをビルド & 実行するも、OpenCV からウィンドウ表示ができなかった
サンプルコード
#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
cmake_minimum_required(VERSION 2.8) project( DisplayImage ) find_package( OpenCV REQUIRED ) include_directories( ${OpenCV_INCLUDE_DIRS} ) add_executable( DisplayImage DisplayImage.cpp ) target_link_libraries( DisplayImage ${OpenCV_LIBS} )
サンプルのビルド
$ cmake ./ $ make
実行エラー
なにやら libgtk2.0-dev が足りないらしい
~/proj/src/opencv_test$ ./DisplayImage panda.jpg terminate called after throwing an instance of 'cv::Exception' what(): OpenCV(4.6.0) ~/proj/opencv-4.6.0/modules/highgui/src/window.cpp:1250: error: (-2:Unspecified error) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function 'cvNamedWindow' 中止 (コアダンプ)
3. libgtk2.0-dev をインストール
$ sudo apt install libgtk2.0-dev
4. OpenCV をビルド & インストール (2 回目)
手順 1 と同様
5. cpp サンプルを実行、読み込んだ画像ファイルが表示された
手順 2 と同様