EclipseからOpenCVを起動して非常に小さなアプリを取得する際に問題が発生しています。アプリケーションはコマンドラインからうまく起動しますが、Eclipseから起動すると出力がなくなり、即座に終了します。私は少なくとも "Hello \ o /"がコンソールに出力されることを期待しています。Eclipseから起動したときにOpenCV C++アプリが直ちに終了する
私は、OpenCVに関連するメソッドを呼び出すと、これが起こることがわかりました。 OpenCVに関連するすべての行をコメントアウトすると、Eclipse Consoleに「Hello \ o /」と表示されます。
問題は、実行時にOpenCV DLLを見つけることができなかったことを前提としています(この問題をコマンドラインで最初に見つけましたが、OpenCV binディレクトリをPATH変数に追加して解決しました) 。 Eclipseで個別に実行コンフィギュレーションに追加しようとしましたが、これは違いはありません。
この問題の原因は何ですか?
マイ出典:
#include "opencv2/opencv.hpp"
#include "opencv2/highgui/highgui.hpp"
#include <stdio.h>
#include <iostream>
using namespace std;
int main(int argc, char** argv) {
cout << "Hello \\o/" << endl;
/* data structure for the image */
IplImage *img = 0;
/* check for supplied argument */
if (argc < 2) {
fprintf(stderr, "Usage: loadimg <filename>\n");
return 1;
}
/* load the image,
use CV_LOAD_IMAGE_GRAYSCALE to load the image in grayscale */
img = cvLoadImage(argv[1], CV_LOAD_IMAGE_COLOR);
/* always check */
if (img == 0) {
fprintf(stderr, "Cannot load file %s!\n", argv[1]);
return 1;
}
/* create a window */
cvNamedWindow("image", CV_WINDOW_AUTOSIZE);
/* display the image */
cvShowImage("image", img);
/* wait until user press a key */
cvWaitKey(0);
/* free memory */
cvDestroyWindow("image");
cvReleaseImage(&img);
return 0;
}
私はOpenCVの経験がありませんが、私はそれが正しく表示されている場合、常にコンソールでHello Worldの出力を取得する必要があります。とにかく実行コマンドに引数を追加していますか?あなたが明示的にそれらを求めているからです... – niktehpui
そう、私はいつも "Hello"を見て、入力画像である単一の引数を追加しています。コードは単純にそれを表示します。私は実際にEclipseで新しくワークスペースを作成することでそれを稼働させることができました。これは、Eclipseが単に私の現在の環境で最新のものになっていないと信じさせています。後でEclipseを再起動したにもかかわらず、私は自分のワークスペースを作成した後にOpenCVのbinディレクトリを追加しました。少なくとも今のところ、2つの間の設定の違いを見つけることのちょうど問題です。 – Kingamajick