0

私はステレオ視差プログラムに取り組んでいます。読み込もうとしている左右の画像があります。ただし、デバッグしようとするとエラーが発生しますが、ビルドするだけで問題なく動作します...だからコードを非常に単純なものに減らしました...

#include <bunch of opencv bits...>

using namespace std;
using namespace cv;

int main()
{
    Mat Left= imread("Left.png", 0);    //read images as grayscale
    Mat Right= imread("Right.png", 0);

    while (true) {
        imshow("Left",Left);
        imshow("Right",Right);
    }

}

デバッグ (F5) で実行すると、行 imshow("Left",Left); が表示されます。そしてそれはクラッシュし、 OpenCV Error: Bad flag (parameter or structure field) (unrecognized or unsupported array type) を報告します ....何とか何とか

コードをステップ実行すると、LeftまたはRightに保存されているものは何も読み込まれていないことがわかります

ただし、プログラムをビルドし (F7)、エクスプローラーから .exe を実行すると (Misc Projects\SteroExp\Debug)、完全に問題なく動作します。

私の考え.... VSは、画像が保存されていないPC上の別の一時ディレクトリからデバッグバージョンを実行しますか?

使用している... W7 64ビット、VS2010、C++、OpenCV 2.3.1

4

2 に答える 2

1

問題は現在の作業ディレクトリです。エクスプローラーから実行すると、現在のディレクトリは「Misc Projects\SteroExp\Debug」ですが、デバッガーから実行すると「Misc Projects\SteroExp」になります。答えは、画像ファイルを正しいディレクトリに移動することです。

于 2012-08-03T10:15:07.043 に答える
1

まず、プロジェクトの作業ディレクトリを再確認してください。プロパティ | Debugging > WorkingDirectoryは、これら 2 つのファイルを含むディレクトリに設定されます。

于 2012-08-03T10:29:09.347 に答える