2012-04-26 5 views
2

MacのポートからopenCV 2.3.1をインストールする際に問題があります。 xcodeプロジェクトのインストールと設定に関しては、this post from Salem's blogを使用しました。ポストに示されているサンプルコードは素晴らしい作品です。しかし、イメージを表示するためにmail.cppファイルを変更した場合、それは失敗します。私が手にエラーは以下の通りですopenCV(2.3.1)のXcode(4.3.2)に関する問題がポートからインストールされました

#include <iostream> 

#include <opencv2/opencv.hpp> 
#include <opencv2/core/core.hpp> 
#include <opencv2/highgui/highgui.hpp> 

int main (int argc, const char * argv[]) 
{ 
    cv::Mat img = cv::imread("Lena.jpg"); 
    cv::namedWindow("Image"); 
    cv::imshow("Image", img); 
} 

OpenCV Error: Bad flag (parameter or structure field) (Unrecognized or unsupported array type) in cvGetMat, file /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_opencv/opencv/work/OpenCV-2.3.1/modules/core/src/array.cpp, line 2482 
terminate called throwing an exception(lldb) 

私もCの++とその慣れていないんだので、今、私は少し混乱しています。ここ は私のサンプルコードです。

アドバイスはありますか?

+0

'cv :: imshow(" Image "、img);' 'cvWaitKey(0);'への呼び出しを追加します。このアプリケーションをデバッグして、どのコードステートメントがこのエラーを生成しているかを発見してから、私たちに報告してください。 – karlphillip

+0

'imshow(...) 'の呼び出しの後に' cv :: waitKey(0); 'を追加し、アプリケーションをデバッグしました。エラーは 'imshow(...) 'の呼び出しによって生成されます。私はどんな方法でも助けてくれることを願っています; – hans

答えて

3

あり、クラッシュがディスク上にある画像を失敗imread()によって引き起こされていることのチャンスです:

cv::Mat img = cv::imread("Lena.jpg"); 
if (!img.data) 
{ 
    // print error and abort execution 
} 

は、あなたが安全にコーディングを開始しない限り、あなたが知っていることは決してないだろう。

+0

この種の問題は、IDE内からアプリを実行するときに発生します。 Visual Studioの人々は、実行可能ファイルと同じディレクトリにイメージを置くので、この間違いを常にしていますが、IDEはソースファイルが格納されているのと同じフォルダ内のイメージを探します。 – karlphillip

+1

よろしくお願いいたします。私は完全なばかだよ:-)私はその事実をチェックするのを忘れたならば、それを試してみることができた!ソースファイルと同じフォルダにイメージがありましたが、IDEはそれを見つけられませんでした。 – hans

関連する問題