VS10中的OpenCV:断言失败,带有imread()函数

时间:2014-06-12 17:06:47

标签: c++ visual-studio-2010 opencv assertion

我在Visual Studio 2010中使用OpenCV 2.4.9并尝试运行教程网站上提供的简单源代码:

#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(argv[1], CV_LOAD_IMAGE_COLOR);   // Read the file

    if(! image.data )                              // Check for invalid input
    {
        cout <<  "Could not open or find the image" << std::endl ;
        cout << argv[1] << 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;
}

然而,当我尝试运行可执行文件(并注释掉if语句)时,我得到:断言失败(size.width&gt; 0&amp;&amp; size.height&gt; 0)在cv :: imshow .... ..(文件路径)

我已经查看了我在这里找到的所有相关主题。文件路径没有错,我已将其打印出来,甚至将可执行文件和jpg移动到同一个文件夹中。

此外,来自另一个教程的示例代码完美地完成了同样的事情,因此我怀疑它是项目配置错误但不确定:

#include <opencv2/opencv.hpp>
using namespace cv;

int main()
{
    IplImage *img = cvLoadImage("C:\\Users\\bomoon\\Documents\\Koala.jpg", 1);

    cvNamedWindow("test");
    cvShowImage("test", img);
    cvWaitKey(0);

    cvReleaseImage(&img);
    cvDestroyWindow("test");
    return 0;
}

任何人都可以解释为什么第二个程序有效但不是第一个,以及我如何修复第一个程序?

PS:不是我需要找到解决方法来完成某些事情,我试图运行示例代码来验证安装是否有效,但是如果一个示例程序显然没有但不是另一个。

0 个答案:

没有答案