初心者向けのアプリ作成本を読んだ中で、画像加工の話が出てきたのですが、色々調べてみるとOpen CVという画像処理に実績のあるライブラリがあるらしく、これを入れると色々できるらしいので、ひとまずxcodeで使えるようにせねばならんと思った次第です。

Home brew でインストールできるらしい

ひとまず、以下コマンドでインストールができるらしいので実行。

Home brew のインストールは以下のリンクからインストールできるらしい

以下、コマンド

brew install opencv

インストールはこんな感じ。長すぎて少しムカつく

xxx@xxxxMacBook-Air ~ % brew install opencv
==> Downloading https://ghcr.io/v2/homebrew/core/eigen/manifests/3.4.0_1
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/eigen/blobs/sha256:211fd7f1d58b383e3d64335c08a376a7d8433007ce61410ead0320df34b6f4
==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sha256:211fd7f1d58b383e3d64335c08a376a7d8433007ce614
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/gflags/manifests/2.2.2-1
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/gflags/blobs/sha256:b7b14b5ab926ce5519ac34e1998f50fcd086eea1f0cb964fdae920e1c5591
==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sha256:b7b14b5ab926ce5519ac34e1998f50fcd086eea1f0cb9
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/glog/manifests/0.5.0
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/glog/blobs/sha256:ddb4061510011a572bb536e3a705929f7d74b26a2477db7c45f0a5273aabcb1
==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sha256:ddb4061510011a572bb536e3a705929f7d74b26a2477d
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/metis/manifests/5.1.0
######################################################################## 100.0%


…
…

cmakeもインストール

brew install -v cmake

インストールを確認

ls /opt/homebrew/Cellar

この中にcmake と opencv4 を確認…これでいいのかな

xcodeの設定を行う

Xcodeを起動して、MacOS - Command Line Toolを選択し、てきとーにプロジェクト名を入れて起動する。

で、Build Settings -> Allタブをクリック -> Header Search Pathsの右側の空白をダブルクリックして、入力できるようにして、さっきインストールした場所である「/opt/homebrew/Cellar」の中にある「opencv」の下のinclude までのpathを入れる。

入れた後、その入力欄をだぶるkダブルクリックすると、なんかウィンドウが出るので、右側の選択肢を「recursive」 に変更する。

ライブラリを追加する

opencvをインストールできてた場所を確認したと思うが、その階層の下にバージョン、そのさらに下にライブラリが入ってるディレクトリがあるので、そこをfinderで開く

今回の例でいくとここ
/opt/homebrew/Cellar/opencv/4.5.5_1/lib

パスの入力は、Shift + Command + G で開くので、そこにパスを入れたら開ける

ファイルを選択する

.dylibがライブラリだけど、その中にエイリアスが混じってるので、エイリアスではない.dylibを選択する。

ファイル一覧で詳細表示をした際、「Unix実行ファイル」が該当する

Link Binary With Libraries に登録する

今度は、Build Phases -> Link Binary With Libraries を開き、そこに先程のファイルを投げ込む

こーこ!

プログラムを実行する

長かった、テストだ!拾ってきた、このテストプログラムを実行する

#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;

int main(){
    cv::Mat imMat(256,256, CV_8UC3);

    for(int y = 0 ; y < imMat.rows; y++){
        for(int x = 0 ; x < imMat.cols; x++){
            cv::Vec3b &p = imMat.at<cv::Vec3b>( y, x );
            p[ 0 ] = x;   p[ 1 ] = y;   p[ 2 ] = (int)((x+y)/2);
        }
    }
    imshow("openCVTest",imMat);
    waitKey(0);
    return 0;
}

Library not loaded: /opt/homebrew/opt/opencv/lib/libopencv_plot.405.dylib とかいうエラー

久しぶりにぶちぎれそうになりますね。ほんと、ムカつく。

で、調べても答えが出てこない…と思ったら、海外のサイトに答えがあった。

以下を設定するとエラーがでなくなった!


「Disable Library Validation」 にチェックを入れるのだ!

Signing & Capabilities -> All -> Disable Library Validation

1    2  

コメント

質問があります。
>> Signing & Capabilities -> All -> Disable Library Validation

ここの、Disable Library Validationの項目がない場合はどうすれば良いか分かりますでしょうか。
また、Xcodeのプロジェクトでなぜこの項目がないのか原因が分からない状態です。
もし何かあれば教えていただけますと幸いです。