У меня сейчас проблема с получением очень маленького приложения с использованием запуска OpenCV из Eclipse. Приложение запускается нормально из командной строки, однако, когда я запускаю его из Eclipse, оно просто сразу же завершает работу без вывода каких-либо данных. Я ожидаю, что по крайней мере «Hello \ o /» будет напечатано на консоли.
Я обнаружил, что это происходит только тогда, когда я вызываю методы, связанные с OpenCV. Поэтому, если бы я закомментировал все строки, относящиеся к OpenCV, я бы увидел «Hello \ o /», напечатанный на консоли Eclipse.
Я предполагаю, что проблема связана с тем, что не удалось найти библиотеки DLL OpenCV во время выполнения (я наткнулся на эту проблему изначально в командной строке, но решил эту проблему, добавив каталог bin OpenCV в переменную 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;
}