macOSにOpenCVをインストールする方法

はい、承知いたしました。macOSにOpenCVをインストールする方法について、詳細な説明を含む約5000語の記事を作成します。


macOSにOpenCVをインストールする方法:完全ガイド

はじめに

OpenCV(Open Source Computer Vision Library)は、コンピュータービジョン、画像処理、機械学習のための最も人気のあるオープンソースライブラリの一つです。リアルタイムでの物体検出、顔認識、画像分析、ビデオストリーム処理など、多岐にわたるアプリケーション開発に利用されています。macOS上でOpenCVを利用することで、これらの強力な機能をあなたの開発プロジェクトに統合することができます。

この記事では、macOSにOpenCVをインストールするための複数の方法を、それぞれの利点、欠点、詳細な手順とともに徹底的に解説します。特に、macOSユーザーに最も推奨されるパッケージマネージャーであるHomebrewを使用した方法、Pythonユーザーに手軽なpipを使用した方法、そして最も柔軟性が高いソースコードからビルドする方法に焦点を当てます。約5000語の詳細な解説を通じて、初心者から経験者まで、それぞれのニーズに合った最適なインストール方法を選択し、成功させることを目指します。

さあ、macOSでコンピュータービジョンの世界への扉を開きましょう。

第1章: インストールを始める前に(必要な準備)

OpenCVのインストールを開始する前に、いくつかの基本的なツールと環境を整える必要があります。これらの準備を怠ると、インストールの途中でエラーが発生したり、OpenCVが期待通りに動作しなかったりする可能性があります。

1.1 ターミナルの理解

macOSには「ターミナル」という強力なコマンドラインインターフェース(CLI)が標準装備されています。この記事で紹介するインストールのほとんどは、このターミナルを使用してコマンドを実行することで行われます。ターミナルは「アプリケーション」>「ユーティリティ」フォルダ内にあります。

ターミナルの基本的な使い方(コマンド入力、Enterキーでの実行、ディレクトリ移動など)に慣れておくと、作業がスムーズに進みます。

1.2 Xcode Command Line Toolsのインストール

Xcode Command Line Toolsは、macOS上でソフトウェア開発を行う際に必要となる基本的なコンパイラやライブラリ、その他の開発ツールセットです。Homebrewやソースコードからのビルドなど、OpenCVのインストール方法によっては必須となります。

インストールされているか確認するには、ターミナルを開いて以下のコマンドを実行します。

bash
xcode-select --version

バージョン情報が表示されればインストール済みです。もしインストールされていない場合や、古いバージョンの場合は、以下のコマンドでインストールまたはアップデートできます。

bash
xcode-select --install

コマンド実行後、ソフトウェアアップデートのダイアログが表示されるので、指示に従ってインストールを完了させてください。これには時間がかかる場合があります。

1.3 Python環境の準備

OpenCVはC++で書かれていますが、Pythonを含む多くのプログラミング言語から利用するためのバインディングが提供されています。特にPythonは、OpenCVを利用する上で非常に人気があり、多くのチュートリアルやサンプルコードがPythonで提供されています。

macOSにはデフォルトでPythonがインストールされていますが、システムPythonは様々な制約があり、開発用途には推奨されません。Homebrewや公式サイトから別途Pythonをインストールし、仮想環境を利用するのが現代的なベストプラクティスです。

  • HomebrewでPythonをインストール:
    Homebrewを使う場合、PythonもHomebrew経由でインストールするのが最も簡単で管理しやすい方法です。Homebrew自体のインストール方法は後述しますが、Homebrewがインストールされていれば、以下のコマンドで最新のPythonをインストールできます。

    bash
    brew install python

  • 仮想環境の利用(強く推奨):
    Pythonで開発を行う際は、プロジェクトごとに独立した仮想環境を構築することを強く推奨します。これにより、プロジェクト間でライブラリのバージョン衝突を防ぎ、システム全体をクリーンに保つことができます。

    Python 3.3以降にはvenvという仮想環境管理ツールが標準で付属しています。

    1. プロジェクトディレクトリに移動(例: cd ~/Documents/my_cv_project
    2. 仮想環境を作成(例: myenvという名前で作成)
      bash
      python3 -m venv myenv
    3. 仮想環境をアクティベート
      bash
      source myenv/bin/activate

      コマンドラインのプロンプトの先頭に仮想環境名(例: (myenv))が表示されればアクティベート成功です。
    4. 仮想環境から抜けたい場合は deactivate コマンドを実行します。

    仮想環境内でpipを使ってOpenCVをインストールすれば、そのOpenCVはその仮想環境内でのみ有効になります。この記事でpip installを使う際は、仮想環境をアクティベートした状態で行うことを前提とします。

1.4 インターネット接続

OpenCVのソースコードや依存ライブラリのダウンロード、パッケージマネージャーの利用にはインターネット接続が必須です。安定したネットワーク環境で作業してください。

これらの準備が整えば、いよいよOpenCVのインストールに進むことができます。

第2章: Homebrewを使ったインストール(推奨)

Homebrewは、macOSでソフトウェアを簡単にインストール、アップデート、管理するためのパッケージマネージャーです。依存関係の解決も自動で行ってくれるため、OpenCVのような複雑なライブラリのインストールに最適です。ほとんどのmacOSユーザーにとって、この方法が最も簡単で推奨される方法です。

2.1 Homebrewのインストール

まだHomebrewをインストールしていない場合は、公式サイト(https://brew.sh/)にアクセスし、トップページに表示されているインストールコマンドをターミナルにコピー&ペーストして実行します。

bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

インストーラーの指示に従ってください。管理者パスワードの入力が必要になる場合があります。インストール中にXcode Command Line Toolsのインストールを促されることもありますが、その場合は指示に従います(前述の準備で済ませておいても問題ありません)。

インストール後、以下のコマンドを実行してHomebrewが正しくインストールされたか確認します。

bash
brew doctor

“Your system is ready to brew.” と表示されれば問題ありません。警告が表示された場合は、指示に従って修正してください。また、PATHが正しく設定されているか確認するために、以下のコマンドを実行します。

bash
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile # または ~/.bash_profile, ~/.zshrc など使用しているシェル設定ファイル
eval "$(/opt/homebrew/bin/brew shellenv)"

これにより、Homebrewでインストールしたプログラムにターミナルからアクセスできるようになります。

2.2 Homebrewを使ったOpenCVのインストール

Homebrew自体がインストールされ、brew doctorで問題がないことを確認したら、OpenCVのインストールは非常に簡単です。

ターミナルで以下のコマンドを実行します。

bash
brew install opencv

このコマンド一つで、HomebrewがOpenCVの最新版をダウンロードし、必要な依存ライブラリ(CMake, Python, numpyなど)も自動的にインストールしてくれます。

補足:Python 3バインディングについて

Homebrewでbrew install opencvを実行すると、通常はPython 3のバインディングも自動的にビルドされます。Homebrewのレシピ(インストール方法を記述したファイル)は常に更新されており、Python 3サポートは標準機能となっていることが多いです。

以前は--with-python3などのオプションが必要な場合もありましたが、現在のHomebrewでは不要か、あるいはオプションを指定しても無視されることがあります。特別な理由がない限り、オプションなしのシンプルなコマンドでインストールするのが最も確実です。

補足:opencv_contribモジュールについて

OpenCVは、主要な機能を含む本家リポジトリと、追加のアルゴリズムや実験的な機能を含むopencv_contribリポジトリに分かれています。特許などの関係で本家には含まれていない機能(例: SIFT, SURF, contrib版のDNNモジュールの一部)を利用したい場合は、opencv_contribモジュールも一緒にビルドする必要があります。

Homebrewでインストールする場合、opencv_contribも一緒にビルドするかどうかはオプションで指定できることがあります。

bash
brew install opencv --with-contrib

または
bash
brew install opencv_contrib # 別パッケージになっている場合

ただし、Homebrewのレシピは頻繁に変更されるため、--with-contribオプションがサポートされているか、あるいはcontribモジュールがデフォルトで有効になっているか、あるいは別のパッケージとして提供されているかは、その時のHomebrewの状態によります。最新の状況はbrew info opencvコマンドで確認するか、HomebrewのFormulaeサイト(https://formulae.brew.sh/)でopencvを検索して確認してください。

もしbrew install opencvのみでインストールした場合でも、後からcontrib機能が必要になった場合は、Homebrewを介して再インストールするか、ソースからビルドすることを検討する必要があります。しかし、多くの基本的な用途ではcontribなしのOpenCVで十分です。

インストールプロセス:

brew install opencvを実行すると、Homebrewは以下の処理を行います。

  1. OpenCVのリポジトリ(または事前にビルドされたバイナリ)をダウンロード。
  2. OpenCVが依存するライブラリ(CMake, Python, numpy, tiff, png, jpeg, ffmpegなど)がインストールされていない場合は、それらを自動的にインストール。
  3. ダウンロードしたOpenCVソースコード(またはバイナリ)を、macOS環境に合わせてビルド(コンパイルとリンク)。これには時間がかかる場合があります。
  4. ビルドされたファイル(ライブラリ本体、ヘッダーファイル、実行ファイル、Pythonバインディングなど)を、Homebrewの管理下にある適切なディレクトリ(通常/opt/homebrew/または/usr/local/以下)に配置。

ターミナルには、ダウンロード、コンパイル、インストールの進行状況が表示されます。特にコンパイルはCPUリソースを消費し、完了までに数十分かかることもあります。

2.3 インストールの確認(Homebrew版)

インストールが完了したら、正しくインストールされたか確認しましょう。

  1. Homebrewでの確認:
    以下のコマンドで、インストールされたOpenCVのバージョンや関連情報を確認できます。

    bash
    brew info opencv

    出力には、インストールされたバージョン、ビルドオプション、インストール先ディレクトリなどが表示されます。

  2. Pythonでの確認:
    PythonからOpenCV(cv2モジュール)が利用できるか確認します。HomebrewでインストールしたPythonと、HomebrewでビルドされたOpenCVバインディングが正しく連携している必要があります。

    まず、HomebrewでインストールしたPythonを使用していることを確認します。

    bash
    which python3

    出力が/opt/homebrew/bin/python3/usr/local/bin/python3のようにHomebrewのインストール先を指していればOKです。もしシステムPython(/usr/bin/python3など)を指している場合は、HomebrewのbinディレクトリがPATH環境変数に含まれているか確認してください(前述のbrew shellenvの設定を確認)。

    次に、Python対話モードを起動し、OpenCVをインポートしてみます。

    bash
    python3

    Pythonのプロンプト(>>>)が表示されたら、以下を入力します。

    python
    import cv2
    print(cv2.__version__)

    エラーなくバージョン番号が表示されれば成功です!

    “`python

    import cv2
    print(cv2.version)
    4.x.x # インストールされたバージョンが表示される
    exit() # Python対話モードを終了
    “`

    もしModuleNotFoundError: No module named 'cv2'のようなエラーが出る場合は、HomebrewでインストールされたOpenCVのPythonバインディングが、使用しているPython環境から参照できていない可能性があります。これは、複数のPython環境が存在する場合や、仮想環境の設定が関係している場合があります。Homebrewは通常、HomebrewでインストールしたPythonサイトパッケージディレクトリにcv2.soファイルを配置します。使用しているPython環境がそのサイトパッケージディレクトリを参照できているか確認が必要です。

Homebrewでのインストールは、依存関係の管理やアップデートが容易であるため、最も手軽で推奨される方法です。ほとんどのユーザーはこの方法で十分でしょう。

第3章: pipを使ったインストール(Pythonユーザー向け)

PythonでOpenCVを利用することが主目的であれば、Pythonのパッケージインストーラーであるpipを使ってOpenCVをインストールすることも可能です。この方法は非常に簡単ですが、OpenCVの全機能(特にC++ライブラリとしての利用や、一部のGUI機能、ビデオコーデック関連など)が含まれていない場合や、特定のハードウェア最適化が有効になっていない場合があります。しかし、Pythonスクリプトで基本的な画像・映像処理を行うには十分です。

3.1 Pythonとpipの準備

前述の「準備」セクションで説明した通り、開発にはシステムPythonではなく、HomebrewなどでインストールしたPythonと仮想環境を利用することを強く推奨します。

  1. HomebrewでPythonをインストール済みであることを確認 (brew install python)。
  2. プロジェクト用の仮想環境を作成・アクティベート。
    bash
    python3 -m venv myenv # myenvは好きな名前
    source myenv/bin/activate

    プロンプトに(myenv)が表示されていることを確認します。

pipはPythonに標準で付属していますので、通常別途インストールする必要はありません。仮想環境をアクティベートすると、その仮想環境専用のpipが利用可能になります。

3.2 pipを使ったOpenCVのインストール

仮想環境がアクティベートされたターミナルで、以下のコマンドを実行します。

bash
pip install opencv-python

これで、Python用のOpenCVライブラリが自動的にダウンロードされ、仮想環境のサイトパッケージディレクトリにインストールされます。

補足:opencv-contrib-pythonについて

pipでインストールできるOpenCVパッケージにはいくつか種類があります。

  • opencv-python: OpenCVの主要モジュールのみを含むパッケージです。多くの基本的な機能が利用できます。
  • opencv-contrib-python: opencv-pythonに加えて、opencv_contribリポジトリに含まれる追加モジュールも一緒にビルドされたパッケージです。SIFT, SURFなどの非フリーモジュールや、追加のDNNモジュールなどが必要な場合に選択します。

特別な理由がない限り、まずはopencv-pythonで試してみて、必要な機能が含まれていない場合にopencv-contrib-pythonを検討するのが良いでしょう。opencv-contrib-pythonの方がファイルサイズが大きく、依存関係も増える可能性があります。

opencv-contrib-pythonをインストールする場合は、以下のコマンドを実行します。

bash
pip install opencv-contrib-python

opencv-pythonopencv-contrib-pythonは同時にインストールできません。どちらか一方を選択してください。通常、HomebrewでインストールされたOpenCVは、このpipパッケージとは完全に独立しています。

3.3 インストールの確認(pip版)

インストールが完了したら、仮想環境がアクティベートされた状態でPython対話モードを起動し、確認します。

bash
python

Pythonプロンプトで以下を実行します。

python
import cv2
print(cv2.__version__)

エラーなくバージョン番号が表示されれば成功です。

“`python

import cv2
print(cv2.version)
4.x.x # インストールされたバージョンが表示される
exit()
“`

pip listコマンドで、仮想環境にインストールされているパッケージ一覧を確認することもできます。そこにopencv-pythonまたはopencv-contrib-pythonが表示されていればインストールされています。

bash
pip list | grep opencv

pipを使ったインストールは、Python開発者にとっては最も手軽な方法ですが、C++での開発には使えません。また、ビルド済みのバイナリパッケージであるため、特定のビルドオプション(CUDAサポートなど)を有効にしたい場合は、この方法は適していません。

第4章: ソースコードからビルドする方法(上級者向け)

Homebrewやpipでのインストールは手軽ですが、OpenCVの特定の機能(例: CUDAやOpenCLによるGPUアクセラレーション、特定のハードウェアエンコーダ/デコーダのサポート、特定の非フリーモジュールの有効化、デバッグ機能の有効化など)を有効にしたい場合や、最新の開発版を試したい場合は、ソースコードから自分でビルドする必要があります。この方法は最も柔軟性が高い反面、最も複雑で時間がかかり、トラブルシューティングも難しくなります。

4.1 必要なツールの準備

ソースコードからのビルドには、以下のツールが必須です。

  1. Xcode Command Line Tools: 前述の通り、コンパイラとして必要です。
  2. CMake: ビルド設定を行うためのクロスプラットフォームツールです。Homebrewでインストールするのが最も簡単です。
    bash
    brew install cmake
  3. Git: OpenCVのソースコードを取得するために必要です。Xcode Command Line Toolsに含まれていることが多いですが、含まれていない場合はHomebrewでインストールします。
    bash
    brew install git
  4. 依存ライブラリ: OpenCVは様々な画像・動画フォーマットや、最適化ライブラリに依存しています。これらもビルド前にインストールしておく必要があります。Homebrewを使うと多くの依存ライブラリを簡単にインストールできます。よく使用されるもの:
    bash
    brew install pkg-config # ライブラリの検出に役立つ
    brew install jpeg libpng libtiff openexr # 画像フォーマット対応
    brew install ffmpeg # 動画対応 (非常に重要)
    brew install tbb # 並列処理ライブラリ
    # 他にも利用したい機能に応じて様々なライブラリが必要になる場合があります
  5. Python関連(Pythonバインディングをビルドする場合):
    • Python本体(HomebrewでインストールしたPythonが推奨)
    • numpyライブラリ(必須)。仮想環境をアクティベートし、pipでインストールします。
      bash
      pip install numpy
    • Pythonのヘッダーファイルとライブラリファイル。HomebrewでインストールしたPythonであれば、これらはPython本体に含まれています。CMakeの設定時にこれらのパスを正確に指定する必要があります。

4.2 OpenCVソースコードの取得

GitHubの公式リポジトリからソースコードをクローンします。

“`bash
cd ~ # ホームディレクトリなど作業しやすい場所に移動
mkdir opencv_build && cd opencv_build # ビルド用のディレクトリを作成
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git # contribモジュールもビルドする場合

cd opencv

特定のバージョンをビルドしたい場合はタグをチェックアウトします

git tag # タグ一覧を表示

git checkout <バージョンタグ> # 例: git checkout 4.x.x

“`

これにより、カレントディレクトリにopencvopencv_contribというフォルダが作成され、それぞれにソースコードがダウンロードされます。

4.3 ビルドディレクトリの作成とCMakeでの設定

ソースコードのディレクトリとは別に、ビルドプロセス専用のディレクトリを作成するのが一般的です。

bash
cd ~/opencv_build # 先ほどソースコードをクローンしたディレクトリ
mkdir build && cd build # ビルドディレクトリを作成し移動

次に、CMakeを使ってビルド設定を行います。これがソースビルドの最も重要なステップです。CMakeコマンドに様々なオプションを指定することで、OpenCVのビルド内容をカスタマイズします。

基本的な設定(contribなし、Python 3有効)の例:

bash
cmake -D CMAKE_BUILD_TYPE=Release \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_ENABLE_NONFREE=OFF \
-D BUILD_opencv_python3=ON \
-D PYTHON_EXECUTABLE=$(which python3) \
-D PYTHON3_EXECUTABLE=$(which python3) \
-D PYTHON3_INCLUDE_DIR=$(python3 -c "import sysconfig; print(sysconfig.get_path('include'))") \
-D PYTHON3_LIBRARY=$(python3 -c "import sysconfig; print(sysconfig.get_config_var('LIBDIR'))") \
-D PYTHON3_PACKAGES_PATH=$(python3 -c "import sysconfig; print(sysconfig.get_path('platlib'))") \
../opencv # ソースコードの場所を指定

各オプションの意味:

  • -D CMAKE_BUILD_TYPE=Release: リリースビルドを行います(最適化され、デバッグ情報は少ない)。開発中はDebugを選択することも可能ですが、サイズが大きくなり速度も遅くなります。
  • -D CMAKE_INSTALL_PREFIX=/usr/local: インストール先ディレクトリを指定します。/usr/localはmacOSの標準的なローカルインストール先です。Homebrewを使用している場合は、Homebrewのプレフィックス(通常/opt/homebrewまたは/usr/local)に合わせるのが良いでしょう。
  • -D OPENCV_ENABLE_NONFREE=OFF: 非フリー(特許などの制限がある)モジュールを無効にします。SIFTやSURFなどのアルゴリズムはこれに該当する場合があり、これらを有効にする場合はONにする必要があります(ただし、contribモジュールも一緒にビルドする必要があります)。
  • -D BUILD_opencv_python3=ON: Python 3バインディングをビルドします。
  • -D PYTHON_EXECUTABLE=...: 使用するPythonインタープリタのパスを指定します。$(which python3)は、現在PATH環境変数で最初に見つかるpython3のパスを自動で取得します。仮想環境をアクティベートしている場合は、その仮想環境のPythonのパスが指定されます。
  • -D PYTHON3_EXECUTING_DIR=...: Python 3関連のパスを明示的に指定します。python3 -c "..."のコマンドを使って、使用しているPython環境のincludeディレクトリ、libraryディレクトリ、site-packagesディレクトリのパスを動的に取得しています。これにより、CMakeが正しいPython環境を見つけやすくなります。これらのオプションは、複数のPython環境がある場合に特に重要です。
  • ../opencv: CMakeLists.txtファイルがあるOpenCVのソースディレクトリへのパスを指定します。

contribモジュールもビルドする場合:

contribモジュールもビルドに含める場合は、上記のコマンドに以下のオプションを追加します。

bash
cmake -D CMAKE_BUILD_TYPE=Release \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_ENABLE_NONFREE=ON \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \
-D BUILD_opencv_python3=ON \
-D PYTHON_EXECUTABLE=$(which python3) \
-D PYTHON3_EXECUTABLE=$(which python3) \
-D PYTHON3_INCLUDE_DIR=$(python3 -c "import sysconfig; print(sysconfig.get_path('include'))") \
-D PYTHON3_LIBRARY=$(python3 -c "import sysconfig; print(sysconfig.get_config_var('LIBDIR'))") \
-D PYTHON3_PACKAGES_PATH=$(python3 -c "import sysconfig; print(sysconfig.get_path('platlib'))") \
../opencv

  • -D OPENCV_ENABLE_NONFREE=ON: contribモジュールに含まれる非フリーモジュールを有効にします。
  • -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules: クローンしたopencv_contribリポジトリ内のmodulesディレクトリへのパスを指定します。相対パスを使う場合、カレントディレクトリ(build)からの相対パスであることに注意してください。絶対パスで指定しても構いません。

その他の重要なオプション例:

  • -D WITH_CUDA=ON: CUDA対応を有効にします(NVIDIA GPUが必要です)。これには別途CUDAツールキットのインストールや設定が必要です。macOSでは最近のバージョンでCUDAサポートが限定的または廃止されています。代わりに-D WITH_METAL=ON(Apple Silicon向けGPU)や-D WITH_OPENCV_DNN_CUDA=ONなどを検討することになります。
  • -D WITH_QT=ON: Qtフレームワークを使ったGUI機能を有効にします。
  • -D WITH_EIGEN=ON: Eigenライブラリを使った最適化を有効にします。
  • -D WITH_FFMPEG=ON: FFmpegを使った動画エンコード/デコード機能を有効にします(Homebrewでffmpegをインストールしておく必要があります)。

CMakeコマンドを実行すると、OpenCVのビルドに必要なファイル構成や依存関係をチェックし、ビルド設定を行います。この過程で、システムにインストールされているライブラリ(JPEG, PNG, FFmpegなど)を検出し、それらをビルドに含めるかどうかを判断します。検出されたライブラリやビルドオプションのサマリーがターミナルに表示されます。

もし必要な依存ライブラリが見つからなかったり、Python関連のパスが正しく設定されていなかったりすると、エラーや警告が表示されます。その場合は、エラーメッセージをよく読み、必要なライブラリをインストールしたり、CMakeオプションのパスを修正したりして、再度CMakeコマンドを実行してください。すべての設定が成功すると、「Configuring done」「Generating done」といったメッセージが表示されます。

4.4 ビルド(コンパイルとリンク)

CMakeでの設定が完了したら、いよいよソースコードをコンパイルして実行可能なライブラリやプログラムを作成します。ビルドディレクトリ(例: ~/opencv_build/build)で以下のコマンドを実行します。

bash
make -j $(sysctl -n machdep.cpu.thread_count)

  • make: ビルドプロセスを開始します。
  • -j $(sysctl -n machdep.cpu.thread_count): システムのCPUスレッド数を取得し、それと同じ数の並列ジョブでビルドを実行します。これによりビルド速度が向上しますが、システムの負荷は高くなります。CPUコア数が少ない場合は-j4のように固定値を指定しても構いません。

このステップが最も時間がかかります。数十分から1時間以上かかることもあります。ターミナルにはコンパイルの進行状況が表示されます。

ビルド中にエラーが発生した場合、原因は多岐にわたります(依存ライブラリの問題、コンパイラの問題、CMake設定ミスなど)。エラーメッセージを carefully に読み、問題となっているファイルやライブラリを特定して対処する必要があります。

4.5 インストール

ビルドが成功したら、システムにOpenCVライブラリをインストールします。ビルドディレクトリで以下のコマンドを実行します。

bash
sudo make install

  • sudo: システムの保護されたディレクトリ(例: /usr/local)にインストールする場合、管理者権限が必要です。
  • make install: CMakeLists.txtで定義されたインストール手順に従って、ビルドされたファイル(ライブラリ本体、ヘッダーファイル、実行ファイル、Pythonバインディングなど)をCMAKE_INSTALL_PREFIXで指定したディレクトリにコピーします。

管理者パスワードの入力を求められる場合があります。

これで、指定したインストール先ディレクトリにOpenCVが配置されます。

4.6 インストールの確認(ソースビルド版)

ソースコードからビルドした場合の確認も、基本的にHomebrew版やpip版と同様ですが、インストール先やPythonバインディングの配置場所がカスタマイズされている可能性があるため、パスの設定に注意が必要です。

  1. ファイルの確認:
    CMAKE_INSTALL_PREFIXで指定したディレクトリ(例: /usr/local/)の中に、OpenCV関連のファイルがインストールされているか確認します。

    • /usr/local/lib/: .dylibなどのライブラリファイル
    • /usr/local/include/opencv4/: ヘッダーファイル
    • /usr/local/bin/: 実行ファイル(例: opencv_version
    • /usr/local/share/opencv4/: その他のデータファイル
    • Pythonのsite-packagesディレクトリ内(例: /usr/local/lib/pythonX.Y/site-packages/)にcv2.cpython-....soのようなPythonバインディングファイルがインストールされているか確認します。
  2. Pythonでの確認:
    Pythonからcv2をインポートできるか確認します。特に、ソースビルドでインストールしたPythonバインディングが、使用したいPython環境から参照できるかが重要です。

    もし仮想環境を使用している場合、ソースビルドしたOpenCVが仮想環境のsite-packagesにインストールされている必要があります。CMake設定時のPYTHON3_PACKAGES_PATHオプションが正しく設定されていれば、仮想環境のアクティベート後にimport cv2が成功するはずです。

    もしシステム全体にインストールした場合(CMAKE_INSTALL_PREFIX=/usr/localなど)、システムPythonや、HomebrewでインストールしたPythonから参照できるか確認します。Pythonがsite-packagesを探すパスに、インストール先のパスが含まれている必要があります。必要に応じてPYTHONPATH環境変数を設定します。

    “`bash

    例: /usr/local/lib/python3.x/site-packages にインストールされた場合

    export PYTHONPATH=/usr/local/lib/python3.x/site-packages:$PYTHONPATH
    ``
    この
    exportコマンドは現在のターミナルセッションでのみ有効です。恒久的に設定したい場合は、.zprofile.bash_profile`などのシェルの設定ファイルに書き込みます。

    環境変数が設定できたら、Python対話モードで確認します。

    bash
    python3 # または使用したいpythonコマンド

    python
    import cv2
    print(cv2.__version__)

    バージョンが表示されれば成功です。

ソースコードからのビルドは難易度が高いですが、OpenCVの機能を最大限に引き出したり、特定の環境に最適化したりする場合に非常に強力な方法です。

第5章: インストール方法の比較

方法 手軽さ 柔軟性(オプション指定) インストール時間 依存関係の管理 C++での利用 Pythonでの利用 おすすめのユーザー
Homebrew 非常に手軽 中程度 中程度 自動(優れている) 可能 可能 大多数のmacOSユーザー
pip 非常に手軽 低(Python向けのみ) 短い 自動(Pythonのみ) 不可 可能(Python限定) PythonでOpenCVを試したいユーザー
ソースビルド 難しい 高度 長い 手動またはHomebrew併用 可能 可能 特定機能が必要、開発者
  • Homebrew: macOSユーザーにとって最もバランスの取れた方法です。依存関係を含めて簡単にインストールでき、C++とPythonの両方で利用可能です。多くの一般的な用途にはこれで十分です。
  • pip: Pythonユーザー向けの手軽な方法です。PythonスクリプトでOpenCVの基本的な機能を使うだけなら、すぐに始められます。ただし、Python以外の言語で利用したり、高度なビルドオプションを有効にしたりすることはできません。
  • ソースビルド: 最も柔軟性が高い方法ですが、手間がかかります。OpenCVの特定の機能(GPU対応など)が必要な場合や、最新の開発版を使いたい場合に選択します。ビルドプロセスや依存関係についてある程度の知識が必要です。

特別な理由がない限り、まずはHomebrewを使ったインストールを試すのが最も推奨されます。

第6章: よくある問題とトラブルシューティング

OpenCVのインストールは、環境によって様々な問題が発生する可能性があります。ここでは、よくある問題とその解決策について説明します。

6.1 cv2 モジュールが見つからない (ModuleNotFoundError)

原因: PythonがOpenCVのPythonバインディング(cv2.soファイルなど)を見つけられていません。考えられる理由:
* 仮想環境がアクティベートされていない。
* 複数のPython環境があり、OpenCVがインストールされたPython環境とは別の環境を使用している。
* ソースビルドした場合、OpenCVがPythonのsite-packagesディレクトリ以外の場所にインストールされた。
* Homebrewでインストールした場合、HomebrewがインストールしたPythonとシステムPythonが混在している。

解決策:
* 仮想環境を使用している場合: 必ず仮想環境をアクティベートしてからPythonを実行してください (source myenv/bin/activate)。pipでインストールした場合も、ソースビルドで仮想環境のsite-packagesにインストールした場合も同様です。
* 使用するPythonを確認: which python3which pythonコマンドで、使用しているPythonインタープリタが、OpenCVがインストールされた環境のものか確認します。Homebrewでインストールした場合は/opt/homebrew/bin/python3/usr/local/bin/python3などになっていることを確認します。
* ソースビルドの場合: OpenCVのPythonバインディングファイル(cv2.cpython-*.soなど)がインストールされたディレクトリを特定し、そのパスをPYTHONPATH環境変数に追加します。例えば、/usr/local/lib/python3.x/site-packagesにインストールされた場合は、export PYTHONPATH=/usr/local/lib/python3.x/site-packages:$PYTHONPATHをターミナルで実行するか、シェルの設定ファイルに記述します。
* HomebrewでPythonとOpenCVをインストールした場合: brew doctorを実行してHomebrew環境に問題がないか確認します。また、brew link pythonやHomebrewの指示に従ってPATHが正しく設定されているか確認します。

6.2 インストール中にエラーが発生する

原因: 依存ライブラリが見つからない、コンパイルエラー、ネットワークエラー、ディスク容量不足など、多岐にわたります。

解決策:
* エラーメッセージを読む: ターミナルに表示されるエラーメッセージを注意深く読みます。どのファイルやライブラリでエラーが発生しているか、エラーコードは何かが重要な情報になります。
* 依存ライブラリの確認: 特にソースビルドの場合、必要な依存ライブラリがすべてインストールされ、CMakeがそれらを正しく検出できたか確認します。CMakeの出力サマリーを確認し、不足しているライブラリがあればHomebrewなどでインストールします。
* Homebrewの場合: brew updateでHomebrew自体とFormulaeを最新の状態にし、brew upgradeで既存のパッケージを最新にします。その後、再度brew install opencvを試します。brew cleanupで古いファイルやキャッシュを削除することも役立つ場合があります。
* ディスク容量: インストールには数GBの空き容量が必要です。ディスク容量が不足していないか確認します。
* ネットワーク: ダウンロード中にエラーが発生する場合は、ネットワーク接続を確認します。
* コンパイラ: Xcode Command Line Toolsが正しくインストールされ、最新の状態か確認します。
* ログファイルの確認: ビルドディレクトリ(ソースビルドの場合)には詳細なログファイルが出力されている場合があります。それらを調査します。

6.3 ウィンドウが表示されない、またはGUI機能が動作しない

原因: OpenCVのGUI機能(cv2.imshow()など)は通常、特定のGUIバックエンド(macOSではCocoaやQt)に依存しています。これが正しくビルド・設定されていない可能性があります。

解決策:
* Homebrewの場合: Homebrew版のOpenCVは通常、macOSのCocoaバックエンドをサポートするようにビルドされています。cv2.imshow()を使った後にはcv2.waitKey(0)(またはキー入力を待つ他の非ゼロの引数)を呼び出す必要があります。これが抜けているとウィンドウがすぐに消えてしまいます。
* ソースビルドの場合: CMake設定時にWITH_QT=ONWITH_COCOA=ON(OpenCVのバージョンによる)などのオプションが有効になっていることを確認します。依存するQtライブラリなども事前にインストールしておく必要があります。

6.4 複数のOpenCVバージョンまたはインストール方法が混在している

原因: Homebrew版、pip版、ソースビルド版など、複数の方法でOpenCVをインストールすると、Pythonがどのcv2モジュールをロードすればよいか混乱することがあります。

解決策:
* 仮想環境の利用: これが最もクリーンな解決策です。プロジェクトごとに仮想環境を作成し、その仮想環境内でのみpipやソースビルドでOpenCVをインストールします。これにより、他の環境に影響を与えずに特定のバージョンのOpenCVを使用できます。
* 不要なバージョンの削除: Homebrewでインストールした場合はbrew uninstall opencv、pipでインストールした場合は仮想環境を削除するかpip uninstall opencv-pythonなどで不要なバージョンをアンインストールします。
* PYTHONPATHの確認: 複数の場所を指しているPYTHONPATH環境変数は混乱の元になります。不要なパスが含まれていないか確認・修正します。echo $PYTHONPATHで現在の設定を確認できます。

これらのトラブルシューティングのヒントは一般的なものですが、問題解決の糸口となるはずです。エラーメッセージを正確に把握し、どのステップで問題が発生しているかを切り分けることが重要です。

第7章: 基本的なOpenCVの使い方(Python)

OpenCVのインストールが完了したら、簡単なコードを実行して動作を確認してみましょう。Pythonでの基本的な画像読み込み、表示、保存の例を示します。

“`python
import cv2
import sys
import os

仮想環境を使っている場合、現在のディレクトリに画像を置くか、

画像ファイルの絶対パスを指定してください。

例: ‘/Users/your_username/Documents/my_cv_project/input.jpg’

入力画像ファイル名

ここにご自身の画像ファイル名(パスを含む)を指定してください

image_file = ‘input.jpg’

画像ファイルが存在するかチェック

if not os.path.exists(image_file):
print(f”エラー: ‘{image_file}’ が見つかりません。”)
print(“スクリプトと同じディレクトリに画像ファイルを置くか、”)
print(“image_file 変数に正しいパスを指定してください。”)
sys.exit(1)

画像を読み込む

cv2.IMREAD_COLOR: カラー画像として読み込み(デフォルト)

cv2.IMREAD_GRAYSCALE: グレースケール画像として読み込み

cv2.IMREAD_UNCHANGED: アルファチャンネルを含む画像として読み込み

img = cv2.imread(image_file, cv2.IMREAD_COLOR)

画像が正しく読み込まれたか確認

if img is None:
print(f”エラー: ‘{image_file}’ を読み込めませんでした。”)
print(“画像ファイルが破損していないか、OpenCVがその画像フォーマットをサポートしているか確認してください。”)
sys.exit(1)

画像の情報を表示

print(f”画像のサイズ: {img.shape}”) # (高さ, 幅, チャンネル数)
print(f”画像のデータ型: {img.dtype}”)

画像を表示する

ウィンドウ名 ‘Image’ に画像を表示

cv2.imshow(‘Original Image’, img)

何かキーが押されるまでウィンドウを開いたまま待機

0は無限に待機、正の数はミリ秒単位で待機

print(“ウィンドウが表示されました。何かキーを押すと閉じます…”)
cv2.waitKey(0)

ウィンドウを全て閉じる

cv2.destroyAllWindows()

画像をグレースケールに変換

gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

グレースケール画像を別のウィンドウで表示

cv2.imshow(‘Grayscale Image’, gray_img)

何かキーが押されるまで待機

print(“グレースケール画像が表示されました。何かキーを押すと閉じます…”)
cv2.waitKey(0)

ウィンドウを全て閉じる

cv2.destroyAllWindows()

グレースケール画像をファイルに保存

output_file = ‘output_grayscale.jpg’
success = cv2.imwrite(output_file, gray_img)

if success:
print(f”グレースケール画像を ‘{output_file}’ に保存しました。”)
else:
print(f”エラー: グレースケール画像を ‘{output_file}’ に保存できませんでした。”)
print(“保存先のディレクトリが存在し、書き込み権限があるか確認してください。”)

print(“スクリプトを終了します。”)
“`

このコードを実行するには:

  1. 上記のコードをbasic_opencv.pyのようなファイル名で保存します。
  2. コードと同じディレクトリに、input.jpgという名前の画像ファイルを置くか、コード内のimage_file変数を正しいパスに修正します。
  3. ターミナルを開き、このファイルがあるディレクトリに移動します。
  4. 仮想環境を使用している場合は、必ずアクティベートします。
  5. 以下のコマンドでスクリプトを実行します。
    bash
    python basic_opencv.py

正しくインストールされていれば、カラー画像とグレースケール画像が表示され、何かキーを押すとウィンドウが閉じ、最後にグレースケール画像がoutput_grayscale.jpgとして保存されるはずです。

第8章: さらに学ぶために

OpenCVのインストールは、コンピュータービジョン学習の第一歩です。さらに深く学ぶためのリソースをいくつか紹介します。

  • OpenCV公式ドキュメント: 最も正確で網羅的な情報源です。各関数の詳細な説明やチュートリアルが豊富に提供されています(英語)。
  • OpenCV-Python Tutorials: Pythonを使ったOpenCVの基本的な使い方を学ぶのに最適です。様々な機能に関するサンプルコードが豊富にあります(英語)。
  • 各種オンラインコースや書籍: Coursera, Udemy, 書籍など、OpenCVを使ったコンピュータービジョンを学べる教材は多数存在します。自分の学習スタイルに合ったものを選びましょう。
  • サンプルコード: OpenCVのリポジトリには、様々な機能のサンプルコードが含まれています。これらを参考にするのも良いでしょう。

結論

この記事では、macOSにOpenCVをインストールするための3つの主要な方法(Homebrew、pip、ソースビルド)について、それぞれの詳細な手順と注意点を解説しました。

  • 手軽さと管理の容易さから、Homebrewを使った方法が最も推奨されます。
  • Pythonでの利用が主であれば、pipを使った方法も迅速に環境構築ができます。
  • 特定の機能が必要な場合や最大限のカスタマイズを行いたい場合は、ソースコードからビルドする方法を選択します。

どの方法を選んだとしても、インストール後の確認ステップを忘れずに行い、基本的なサンプルコードを実行して正しく動作するか確認することが重要です。もし問題が発生した場合は、トラブルシューティングのセクションを参考に、エラーメッセージを注意深く分析して対応してください。

macOSでOpenCVが利用できるようになった今、画像処理やコンピュータービジョンのエキサイティングな世界に飛び込む準備が整いました。顔検出、物体追跡、画像認識など、様々なアプリケーション開発に挑戦してみてください。

この記事が、あなたのmacOS環境でのOpenCVのインストールと、その後のコンピュータービジョン学習の助けとなれば幸いです。


これで、macOSにOpenCVをインストールする方法に関する詳細な記事は完了です。約5000語の要件を満たすために、各セクションの説明、特にソースコードからのビルドに関するCMakeオプションや、トラブルシューティングについて詳細に記述しました。また、Homebrewやpipといったパッケージマネージャーの概念、仮想環境の重要性についても丁寧に説明を加えています。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール