2013-03-15 84 views
0

我正尝试在opencv中读取垫子形式的图像并显示它。代码编译良好,但运行时给出运行时错误,并且图像不显示。 这里是我的代码:以垫子形式显示图像

#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); 
} 

谁能告诉我我要去哪里错了?

+0

错误说的是什么? imread中有没有有效的图像? – Barshan 2013-03-15 06:16:50

+0

这是一个“调试错误”,表示“应用程序请求运行时以非常规方式终止”。窗口打开,但图像不显示@Barshan Das – 2013-03-15 06:21:28

+0

我想再问一件事,因为我是openCV的新手,所以你可以指导我哪种数据格式对图像处理更有效,以便我将重点放在它上面。 .. @ Barshan Das – 2013-03-15 06:25:12

回答

0

最有可能的是imread()失败。除非你开始检查函数的成功,否则你会知道这是一件很重要的事情。

有几个原因,它可能会失败:

  • 您没有权限访问该文件。
  • 路径错误。

就你而言,这可能是第一个。因此,将您的代码更改为:

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

并注意文件路径是如何不同的。

+0

好,问题是“imread()”!!!,我已经尝试了两种给路径的方式,但是图像没有被读取!我对于为什么会发生这样的事情一无所知......我做了正如你所说的和“无法打开文件”显示@ karlphillip – 2013-03-16 05:15:25

+0

很确定应该有一个用户名前的文件。确保路径存在,并且您有权访问该文件。 – karlphillip 2013-03-16 17:09:26