Opencv 以mat形式显示图像

Opencv 以mat形式显示图像,opencv,Opencv,我试图在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:/Do

我试图在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);
}
#包括“stdafx.h”
#包括
#包括
#包括
使用名称空间cv;
使用名称空间std;
void main()
{
Mat-Img;
Img=imread(“C:/Documents and Settings/image1.jpg”);
cvNamedWindow(“图像”,CV_窗口_自动调整大小);
imshow(“图像”,Img);
cvWaitKey(0);
}
谁能告诉我哪里出了问题吗?

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

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

  • 您没有访问该文件的权限
  • 这条路错了
对你来说,这可能是第一次。因此,请将代码更改为:

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

std::cout错误说明了什么?在提供给imread的路径中是否存在有效映像?这是一个“调试错误”,说明“应用程序已请求运行时以异常方式终止”。窗口打开,但图像未显示@Barshan Das1,我想再问一件事,因为我是openCV新手,所以您能否指导我哪种数据格式对图像处理更有效,以便我将重点放在它上…@Barshan Das1。您的代码看起来很好。它在我的机器上成功运行。请确保您给出了正确的路径你说的“数据格式”是什么意思?我不明白。这是反斜杠->(),这是正斜杠(/)反斜杠用于转义字符。因此,在文件路径中,如果需要使用\,我们必须使用\\。正斜杠/不是这种情况。因此,我们不需要使用//。仅使用/就足够了。控制台错误消息表明找不到映像文件。请尝试一些无效的路径名,并查看是否出现相同的错误。请确保使用有效的图像文件路径。还要检查是否存在权限问题。程序应该有访问所需文件的权限。问题在于“imread()”!!!我尝试了两种方式提供路径,但图像没有被读取!我不知道为什么会发生这种情况……我按照你说的做了,并且“无法打开文件”是displayed@karlphillipPretty确保文件前应有用户名。确保路径存在,并且您有权访问该文件。