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を選択。
(画像は先程のサイトから引用)
プロジェクトを作れたら、上のサイトにあるように次の手順をふむ。
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
へと変更
(画像は先程のサイトから引用)
次にライブラリを追加していく。
先程の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を行う。
(画像は[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