0

我正在尝试在 opencv 中读取 mat 形式的图像并显示它。代码编译得很好,但是运行时会出现运行时错误,并且不显示图像。这是我的代码:

#include "stdafx.h"
#include<cv.h>
#include<highgui.h>
#include<iostream>
using namespace cv;
using namespace std;

void main()
{
    Mat Img;
    Img=imread("C:/Documents and Settings/image1.jpg");
    cvNamedWindow("Image",CV_WINDOW_AUTOSIZE);
    imshow( "Image", Img ); 
    cvWaitKey(0);
}

谁能告诉我我哪里出错了?

4

1 回答 1

0

很可能imread()是失败了。除非您开始检查功能是否成功,否则您肯定会知道,这是您编写代码时要做的重要事情。

它可能失败的原因有几个:

  • 您无权访问该文件。
  • 路径不对。

在你的情况下,它可能是第一个。因此,将您的代码更改为:

Mat Img;
Img = imread("C:\\Documents and Settings\\image1.jpg");
if (Img.empty()) {
    std::cout <<  "!!! Failed to open the file\n";
    return;
}

并注意文件路径有何不同。

于 2013-03-15T20:51:52.543 回答