Выход из программы загрузки изображений OpenCV

0

Я тестирую OpenCV 2.4.10, используя исходный код примера, данный вам в конце учебника по установке. Код компилируется, но он действительно выйдет сразу после запуска. Я вижу вспышку первого "сообщения cout", но я не вижу даже вспышки загрузки изображения или чего-то еще. Я использую Visual Studios 2012 C++ и OpenCV 2.4.10.

Тестовый код:

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main( int argc, char** argv )
{
    if( argc != 2)
    {
     cout <<" Usage: display_image ImageToLoadAndDisplay" << endl;
     return -1;
    }

    Mat image;
    image = imread("opencv-logo.png", IMREAD_COLOR); // Read the file

    if(! image.data ) // Check for invalid input
    {
        cout << "Could not open or find the image" << std::endl ;
        return -1;
    }

    namedWindow( "Display window", WINDOW_AUTOSIZE ); // Create a window for display.
    imshow( "Display window", image ); // Show our image inside it.

    waitKey(0); // Wait for a keystroke in the window
    return 0;
}

Когда я его создаю, я непреднамеренно загружаю ненужную DLL, возможно, из-за глобальной настройки из предыдущего проекта. Некоторые из нагрузок дают мне эту ошибку:

'test.exe' (Win32): Loaded 'C:\opencv\build\x64\vc11\bin\opencv_highgui2410d.dll'. Cannot find or open the PDB file.
'test.exe' (Win32): Loaded 'C:\opencv\build\x64\vc11\bin\opencv_core2410d.dll'. Cannot find or open the PDB file.
'test.exe' (Win32): Loaded 'C:\Program Files\NVIDIA Corporation\coprocmanager\_etoured.dll'. Cannot find or open the PDB file.
'test.exe' (Win32): Loaded 'C:\Program Files\NVIDIA Corporation\coprocmanager\Nvd3d9wrapx.dll'. Cannot find or open the PDB file.
'test.exe' (Win32): Loaded 'C:\Program Files\NVIDIA Corporation\coprocmanager\nvdxgiwrapx.dll'. Cannot find or open the PDB file.
'test.exe' (Win32): Loaded 'C:\Windows\System32\guard64.dll'. Cannot find or open the PDB file.

И программа выходит с:

The program '[9084] test.exe' has exited with code -1 (0xffffffff).

Я не совсем уверен, что здесь происходит, я добавил следующее к C/C++> General

C:\opencv\build\include\opencv
C:\opencv\build\include\opencv2
C:\opencv\build\include

Я добавил следующее в Linker> General> Дополнительные библиотеки:

C:\opencv\build\x646\vc11\lib

И библиотеки (особенно те, которые возвращают ошибку загрузки, кроме nvidia) в Linker> Input. Я также добавил путь vc11\bin к переменным среды.

Я попытался использовать cin.get(), чтобы заставить паузу, но она не работает. Связано ли это с ошибками загрузки, возвращаемыми некоторыми DLL?

Может кто-то указать мне верное направление? Спасибо за прочтение!

Теги:
opencv
visual-c++

1 ответ

1
Лучший ответ

Поместите контрольную точку в начале основного и одиночного шага, пока она не сработает. Я предполагаю, что либо ваше изображение не может загрузить, потому что оно не найдено, либо оно находится в формате, непризнанном opencv

  • 0
    Проблема в том, что изображение не загружается. Предполагается, что OpenCV совместим с файлами .PNG. Кроме того, у меня есть тестовый файл в той же папке, где находится исполняемый файл отладки.
  • 0
    Я думаю, что рабочим каталогом по умолчанию для visual studio является каталог проекта. Попробуйте запустить отладочный исполняемый файл из командной строки в этом каталоге и посмотрите, работает ли он
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню