えいあーるれいの技術日記

ROS2やM5 Stack、Ubuntuについて書いています

OpenCV4のaptによる簡単インストールメモ(C++,Python)

OpenCVを人にインストールさせるのってやたらめんどうだと思っています。

なぜなら、人によってインストール方法が全く違うからです。

C++なら、ビルドするかaptで取得するとかの違いがあり、バージョンは2・3・4が未だに混在している例が多い。Pythonならもっと手段があって、aptでインストールするのかpipでインストールするのか、condaでインストールするのか、自力ビルドするのか…(そしてPythonはやたら環境が壊れる)


自力でビルドするのが望ましいと思っている人もいれば、初心者の障壁はできるだけ取り除くべきだと考えている人もいると思います。


私は、ROSのパッケージ郡を使っていますが、ROS1やROS2を扱うとほぼ確実にlibopencv-devpython3-opencvがインストールされます。それらはCPUさえしっかりしていればあまり環境を気にせずに環境構築できるので重宝しています。

私はGitHubでドキュメントを書くたびにOpenCVの扱いに困っていたので、ここで備忘録を兼ねて書こうと思います。C++で度々必要になるCMakeLists.txtについても改めて書きます。

インストール方法

Ubuntu20を前提にしています。ただし、Ubuntu16以降ならおそらくインストール可能です。

バージョンに注意が必要な場合があります。

C++

$ sudo apt install libopencv-dev

Python

$ sudo apt install python3-opencv

アンインストールは、apt purge`apt removeで行います。

C++での使い方

プログラム内では次のようにヘッダーを設定します。VSCodeでエラー波線を消す場合は、インクルードパスに/usr/include/opencv4を追加します。

#include <opencv2/opencv.hpp>

CMakeLists.txtでは次のように書きます。<>で囲まれている文字列はそれぞれファイル名に置き換えてください。<execute_file_name>が実際に生成され、実行できるファイル名です。

cmake_minimum_required(VERSION 2.8)
project(test_cmake CXX)

add_executable(<execute_file_name> <c++_source_name>)

find_package(OpenCV REQUIRED)
if(OpenCV_FOUND)
    target_include_directories(<execute_file_name> PUBLIC ${OpenCV_INCLUDE_DIRS})
    target_link_libraries(<execute_file_name> ${OpenCV_LIBS})
endif()

Python3での使い方

こちらはとても簡単。

$ python3
>> import cv2
>> cv2.__version__
'4.5.2'

ちなみに、OpenCV-OpenVINOの設定などをしている場合は'4.5.2-openvino'などの表記になります。(以下の記事で環境構築しています。)

ar-ray.hatenablog.com

参考リポジトリ

特に新しい手法ではないので、この記事の元になった私のリポジトリを貼ります。

github.com

github.com

OpenCVは機能がとても多いので、特に初学者なら本を1冊は持っておくと良いでしょう。