OpenCV cvLoadImage () не загружает изображения в отладчике Visual Studio? - PullRequest
6 голосов
/ 22 января 2010

Я пытаюсь создать простой привет мир для OpenCV, но у меня заканчиваются идеи, почему он не работает.

Когда я компилирую и запускаю этот код:

#include <cv.h>
#include <highgui.h> 
int main(int argc, char* argv[])
{
 IplImage* img = cvLoadImage( "myjpeg.jpg" );
 cvNamedWindow( "MyJPG", CV_WINDOW_AUTOSIZE );
 cvShowImage("MyJPG", img);
 cvWaitKey(0);
 cvReleaseImage( &img );
 cvDestroyWindow( "MyJPG" );
 return 0;
}

Вместо указанного файла .jpg я получаю серую рамку размером около 200x200. Если я использую другой jpg, я получаю такое же окно, и если я добавляю неверное имя файла, я получаю очень маленькое окно (ожидаемое).

Я использую Visual Studio 2008 под Windows 7 Professional.

Кажется, что большинство примеров программ работают нормально, поэтому я вдвойне смущен тем, как этот код прекрасно загружает примеры jpgs, но в приведенном выше коде это не работает (даже пробовал пример jpeg).

Обновление

Исполняемые файлы, созданные компиляцией, работают нормально, однако отладчик Visual Studio 2008 загружает нулевой указатель в img каждый раз, когда я пытаюсь запустить отладчик - независимо от того, является ли местоположение файла неявным или явным.

Ответы [ 4 ]

8 голосов
/ 22 января 2010

Похоже, что существует проблема с путем к myjpeg.jpg, поскольку текущий каталог может отличаться, когда вы работаете под отладчиком.

По умолчанию текущим каталогом, используемым отладчиком Visual Studio, является каталог, содержащий файл .vcproj, но вы можете изменить его в свойствах проекта (Отладка -> Рабочий каталог).

Вы на 100% уверены, что правильно прошли абсолютный путь? Попробуйте передать тот же путь к fopen и посмотреть, вернется ли он также NULL. Если это так, то путь неверен.

Если вы хотите точно увидеть, какой файл пытается открыть библиотека, вы можете использовать Project Monitor с фильтром на myjpeg.jpg.

1 голос
/ 22 января 2010

Какую версию OpenCV вы используете? Я попробовал ваш код на последней (OpenCV2.0), и он отлично работает. Вы можете скачать OpenCV2.0 с здесь .

Если вам нужна последняя сборка, вы можете проверить ее с помощью SVN: здесь .

0 голосов
/ 03 ноября 2012

Я столкнулся с той же проблемой. Отладочная версия не загружает образ, но когда я компилирую и связываю его как релиз, он работает. Я надеюсь, что это помогает

0 голосов
/ 25 июня 2010

Попробуйте добавить HAVE_JPEG в определения препроцессора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...