いちばん失敗した人決定戦

C++
opencv2.3.1
visual studio 2008
の環境でプログラミングをしているのですが、
以下のようなエラーが出て解決出来ずに困っています。

------------------------------------------------------------------
【エラーが出る箇所のソースコード】
if ((tmp_img = cvLoadImage(jpg_name, CV_LOAD_IMAGE_COLOR)) == 0){
free(jpg_name);
return -1;
}

「jpg_name」には、パスを含むjpgファイル名が記述されたtxtファイルを引数とし、
そのtxtファイルから読み込んだjpgファイル名を格納してあります。

------------------------------------------------------------------
【エラー内容】
「jpg_name」にパスも含めて正しくjpgファイル名が格納されているのに
tmp_imgに画像が読み込まれず、
if文内のfree、return -1 が実行され、
プログラムが終了してしまいます。

デバッガのウォッチ上では、
「tmp_img」は<未定義の値>、
「cvLoadImage(jpg_name, CV_LOAD_IMAGE_COLOR)」は
「エラー:マネージEEは式の構文を理解しません」と表示されています。

------------------------------------------------------------------

解決方法をご存知の方がおられましたら
よろしくお願い致します。

A 回答 (3件)

opencvは使ったコトがないので細かいところは不明ですが……



>「jpg_name」にパスも含めて正しくjpgファイル名が格納されているのに
>tmp_imgに画像が読み込まれず、
>if文内のfree、return -1 が実行され、
>プログラムが終了してしまいます。

cvLoadImage()の戻り値がNULLだった…ということでいいんですかね?
http://www.usinezumi.com/blog/2009/12/05/225/
なんて話があるようですが……
# OSなんです?

この回答への補足

回答ありがとうございます。

>OSなんです?
windows7(64bit)です。

>cvLoadImage()の戻り値がNULLだった…ということでいいんですかね?
そうです。
(tmp_img = cvLoadImage(jpg_name, CV_LOAD_IMAGE_COLOR)の直後で
「tmp_img」は<未定義の値>となっていました。

URLのページを参考に
管理者権限で実行、
Visual Studioを介さず、コマンドプロンプトからの実行
を試しましたが、結果は変わりませんでした・・・。

補足日時:2012/12/03 12:46
    • good
    • 0

1.ドライブの直下に置いて試してみる


2.cvLoadImageの代わりに、fopenしてみて、ファイルが開けるかどうかチェックしてみる
    • good
    • 0

「jpg_name」にパスも含めて正しくjpgファイル名が格納されている


ってのはどう確認した?

この回答への補足

デバッガのウォッチ変数から確認しました

補足日時:2012/11/30 03:20
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!