Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用openCV Mat c和x2B加载图像+;_C++_Opencv_Mat_Loadimage - Fatal编程技术网

C++ 使用openCV Mat c和x2B加载图像+;

C++ 使用openCV Mat c和x2B加载图像+;,c++,opencv,mat,loadimage,C++,Opencv,Mat,Loadimage,我想在openCV中使用Mat加载图像 我的代码是: Mat I = imread("C:/images/apple.jpg", 0); namedWindow( "Display window", CV_WINDOW_AUTOSIZE );// Create a window for display. imshow( "Display window", I ); 我在消息框中收到以下错误: Unhandled exception at 0x70270149 in matching.exe:

我想在openCV中使用Mat加载图像

我的代码是:

Mat I = imread("C:/images/apple.jpg", 0);
namedWindow( "Display window", CV_WINDOW_AUTOSIZE );// Create a window for display.
imshow( "Display window", I ); 
我在消息框中收到以下错误:

Unhandled exception at 0x70270149 in matching.exe: 0xC0000005: Access violation 
reading location 0xcccccccc.
请注意,我包括:

#include <cv.h>
#include <cxcore.h>
#include <highgui.h>
#include <iostream>
#include <math.h>
#包括
#包括
#包括
#包括
#包括

你检查过我在imread之后是否存在吗?也许文件读取失败了


阅读一个文件后,请执行
if(I.empty())
检查它是否失败

我不知道为什么您没有包含问题,因为通常它是.hpp文件,所以您应该这样做

#include <opencv2/highgui/highgui.hpp>
#include <opencv2\core\eigen.hpp>
#包括
#包括
但是您的代码看起来不错,但是添加了一个
cv::waitKey(0)在您的imshow之后。

我之前已经讨论过这一点,我想再次这样做是没有意义的,但是防御性地编写代码。:如果方法/函数调用可能失败,请确保您知道它发生的时间:

Mat I = imread("C:\\images\\apple.jpg", 0);
if (I.empty())
{
    std::cout << "!!! Failed imread(): image not found" << std::endl;
    // don't let the execution continue, else imshow() will crash.
}

namedWindow( "Display window", CV_WINDOW_AUTOSIZE );// Create a window for display.
imshow( "Display window", I ); 
waitKey(0);
mati=imread(“C:\\images\\apple.jpg”,0);
if(I.empty())
{

std::cout是否使用visual studio 2010运行OpenCV代码?如果是,请尝试在发布模式下编译。

正如@karlphillip所指出的,尽管这听起来很琐碎,但下面的语句“传递文件名时需要避开反斜杠:C:\images\apple.jpg”非常重要。

正如@Martin Beckett所说,可能只是因为C:/Images/apple不存在,所以你的垫子是空的。如果(!I.empty())也是如此。@Alexandre Bizou当我复制并粘贴你的include时,我收到了这个错误“致命错误C1083:无法打开include文件:'opencv2/highgui/highgui.hpp'”不一定完全复制我放置的内容,因为您的包含目录可能没有设置为我的。正如我在您的中所看到的。您可能只需要执行#包含或#包含。取决于您如何设置文件夹和项目属性@Martin Beckett是的,链接C:/images/apple.jpgYes中有图像“apple.jpg”,但“I.empty()是什么返回?您可能没有权限,文件可能已损坏,您可能没有jpeg.dll等etcv@Martin Beckett我收到上述错误-可能是我没有库或错误地执行了包含。请帮助我。@karlphillip-即使您回答了我,我也有同样的问题。0x7027处的未处理异常0149 in matching.exe:0xC0000005:访问冲突读取位置0xCCCC(显示在消息框中),如果它是
cv::imread()
我以前见过这样的异常。唯一的解决办法是下载OpenCV源代码并在计算机上编译。重新安装OpenCV并没有解决问题。@karlphillip如果我们想从不同的文件夹中读取许多图像,我们应该怎么做?@Wish_2_fly如果我们想存储几个不同的数字,如何处理我们在程序中这样做吗?
intn1=10;intn2=20;intn3=30;…