• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Mac OS X Snow LeopardでのOpenCVについて)

Mac OS X Snow LeopardでのOpenCVについて

このQ&Aのポイント
  • Mac初心者がMac OS X Snow LeopardでOpenCVを使用する方法についての質問です。
  • OpenCVのサンプルコードが実行できず、エラーが発生しています。
  • パスの設定やインストール状況などに問題がある可能性があります。具体的な情報が提供されていないため、解決策が見つけられません。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

includeで opencv/cv.hしと指定してあったら -I/opt/local/include で /opt/local/include の下の opencv/cv.h が探せるのですから includeで cv.hしと指定してあったら -I/opt/local/include/opencv で /opt/local/include/opencv の下の cv.h が探せます。 -lXXXXは、 ライブラリ検索パスにある libXXXX.a または libXXXX.la と言うファイルをリンクします。 ls /opt/local/lib/libcv* として、ファイルがあるか確認してみてください。 当方、以下のコマンドで実行ファイルが作成されました gcc -I/opt/local/include/opencv -L/opt/local/lib kmeans.c -lcv -lcxcore -lhighgui それから、 MacPortsでは Python用モジュールはインストールされないようです。variantにもありません。 Pythonで使いたい場合はソースからコンパイルするか、 Portfileをいじって--with-pythonになるようにする必要があるようです。 ちなみに、 PYTHONPATHは Pythonがモジュールを探すパスなので、 export PYTHONPATH=/Users/takaaki/opencv/lib:$PYTHONPATH というのは、 /Users/takaaki/opencv/lib というディレクトリが存在して、かつ読み取り可能でないと意味がありません。

t07es043
質問者

お礼

回答していただきおりがとうございます。 > includeで opencv/cv.hしと指定してあったら > -I/opt/local/include で /opt/local/include の下の opencv/cv.h が探せるのですから > includeで cv.hしと指定してあったら > -I/opt/local/include/opencv で /opt/local/include/opencv の下の cv.h が探せます。 言われてみればそうですよね。 お恥ずかしいばかりです。 > -lXXXXは、 ライブラリ検索パスにある libXXXX.a または libXXXX.la と言うファイルをリンクします。 > ls /opt/local/lib/libcv* > として、ファイルがあるか確認してみてください。 「ls /opt/local/lib/libcv*」に当てはまるものがありませんでした。 「ls /opt/local/lib/libopencv*」ならあるのですが・・・ > 当方、以下のコマンドで実行ファイルが作成されました > gcc -I/opt/local/include/opencv -L/opt/local/lib kmeans.c -lcv -lcxcore -lhighgui 上記のlibcv*がないのが原因かと思いますが、「Undifinde Symbols」として「_cv*」が大量に出ています。 もう1度見直してみたところ、OpenCV.frameworkが正しく作成されていませんでした。 というか失敗したままでできたつもりになっていました。現状これが最大の原因かと思っています。 > それから、 MacPortsでは Python用モジュールはインストールされないようです。variantにもありません。 > Pythonで使いたい場合はソースからコンパイルするか、 Portfileをいじって--with-pythonになるようにする必要があるようです。 了解しました。 > ちなみに、 PYTHONPATHは Pythonがモジュールを探すパスなので、 > export PYTHONPATH=/Users/takaaki/opencv/lib:$PYTHONPATH > というのは、 /Users/takaaki/opencv/lib というディレクトリが存在して、かつ読み取り可能でないと意味がありません。 /Users/takaakiの部分は自分のPCに合わせてあります。

その他の回答 (1)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

> MacPortsでOpenCV 2.1.1 インストール済み ? MacPortsでインスールされるのは2.0.0のようですが。 まあ、使い方は変りませんが。 > $ gcc -lcv -lhighgui kmeans.c > と打ちましたところ、エラーが大量に出ました。(一番上のエラーはcv.h: No such file or directoryとなっています) Mac初心者ということですが、他のOSの経験は?Cでの開発の経験は?GCCを使ったことはありませんか? MacPortsでインストールしたOpenCVのヘッダファイルは /opt/local/include/opencvディレクトリの中、ライブラリファイルは /opt/local/lib の中にあります。標準のインクルード/ライブラリのパス上ではないので、追加する必要があります。 コマンドラインから直接gccを呼び出すなら、-I(大文字のi)でインクルードファイルを探すディレクトリを, -Lオプションでライブラリファイルを探すディレクトリを追加します。 gcc -I/opt/local/include -L/opt/local/lib -lcv -lhighgui kmeans.c (プログラム中に #include <opencv/~.h> と記述した場合) XCodeなら、「プロジェクト設定を編集」で 「ビルド」の中の「検索パス」の中の「ヘッダ検索パス」「ライブラリ検索パス」にそれぞれ追加します。 Pythonの方も、 http://keepkeptkept.seesaa.net/article/153200416.html に出てきた環境変数 PYTHONPATH を正しく設定していないのだと思われます。 少なくとも、以上でMac上では動作するはずです

t07es043
質問者

お礼

回答いただきありがとうございました。 > Mac初心者ということですが、他のOSの経験は?Cでの開発の経験は?GCCを使ったことはありませんか? Linux (open SUSE)で簡易的なものならありますが、ライブラリファイルを探すディレクトリの指定等はしたことがありませんでした。 > MacPortsでインストールしたOpenCVのヘッダファイルは /opt/local/include/opencvディレクトリの中、ライブラリファイルは /opt/local/lib の中にあります。標準のインクルード/ライブラリのパス上ではないので、追加する必要があります。 > コマンドラインから直接gccを呼び出すなら、-I(大文字のi)でインクルードファイルを探すディレクトリを, -Lオプションでライブラリファイルを探すディレクトリを追加します。 > gcc -I/opt/local/include -L/opt/local/lib -lcv -lhighgui kmeans.c > (プログラム中に #include <opencv/~.h> と記述した場合) kmeans.cでは、   #include "cv.h"   #include "highgui.h"   #include <stdio.h> となっていました。 > gcc -I/opt/local/include -L/opt/local/lib -lcv -lhighgui kmeans.c を打ってみましたが、   ld: library not found for -lcv   collect2: ld returned 1 exit status と表示されました。説明いただいたように#include <opencv/~.h> となっていないのでダメなのでしょうか。 > Pythonの方も、 http://keepkeptkept.seesaa.net/article/153200416.html に出てきた環境変数 PYTHONPATH を正しく設定していないのだと思われます。 .bash_profileに「export PYTHONPATH=/Users/takaaki/opencv/lib:$PYTHONPATH」を追加しただけではできていないでしょうか? > 少なくとも、以上でMac上では動作するはずです 実行方法がまだよく理解できていません。 上記「gcc -I...」で実行されるのでしょうか? よろしくお願いします。