Xcodeでc++のopencvを使えるようにするまで

作業の手順は以下のサイトを参考にした。

[1]https://www.yukisako.xyz/entry/opencv-mac

 

まずはopencvとcmakeのインストールを行う。

(すでにインストール済みであれば飛ばす)

brew install opencv
brew install -v cmake

 

インストールできたかを確認する。

ls /usr/local/Cellar/

を実行し、opencvとcmakeがあれば良い。

 

次にXcodeを開き、macOSのCommand Line Toolを選択。

f:id:jskangaroo:20200616223703p:plain

(画像は先程のサイトから引用) 

 

プロジェクトを作れたら、上のサイトにあるように次の手順をふむ。

1. プロジェクトファイルをクリック

2. メニューからBuild Settingを選択

3. Allをクリックして全部の設定を表示

4. Header Search Pathを見つける

5. +ボタンを押してパス入力画面へ

 (Header Search Pathの行の右の方、OpenCVTestの下あたりをダブルクリック)

6. /usr/local/Cellar/opencv/(バージョン)/を追加

 (自分の場合4.3.0_3)

7. recursiveへと変更

 

f:id:jskangaroo:20200616223851p:plain

(画像は先程のサイトから引用) 

 

次にライブラリを追加していく。

先程の1でクリックしたプロジェクトファイルを右クリックし、Add Files to ""をクリック。

そこで「/」とタイプするとパスを入力するためのウィンドウが現れる。

そこに

/usr/local/Cellar/opencv/4.3.0_3/lib/

と打ち込み、その下にあるlibopencv~(バージョン(自分は4.3.0)).dylibをすべて選択する。

macだとcommand押しながらクリック)

 

Enterを押すとすべてがたされる。

(画面にも現れるはず)

 

しかし、このままではエラーが出る。

そこで[3]を参考にDisable Library Validationを行う。

f:id:jskangaroo:20200616225844p:plain

(画像は[3]から引用) 

 

これで準備は完了。

#include <opencv2/opencv.hpp>

をたせるはず。

 

サンプルコードを実行してもエラーなく実行されるはずだ。

サンプルコード

 

#include <iostream>

#include <opencv2/opencv.hpp>

 

int main(int argc, const char * argv[]) {

    // insert code here...

 

    cv::Mat img = cv::imread("aaaa.png", -1);

    if(img.empty()) {

        return -1;

    }

    cv::namedWindow("ex", cv::WINDOW_AUTOSIZE);

    cv::imshow("ex", img);

    cv::waitKey(0);

    cv::destroyWindow("ex");

    return 0;

}

 

 その他の参考資料

[2]https://www.youtube.com/watch?v=o62iO8SssZk

 

[3]https://github.com/opencv/opencv/issues/15645