Я тестирую 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