我想加载OpenCV中使用垫的图像
我的代码是:
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>
请帮忙。 谢谢。
我已经谈过这个这么多次前,我想这是毫无意义的做一遍,但防守代码 :如果一个方法/函数调用失败,请确保您知道什么时候会发生:
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);
需要注意的是Windows的路径使用反斜线\
而不是标准的/
在* nix系统中使用。 你需要逃离传递文件名时反斜线: C:\\images\\apple.jpg
调用waitKey()
如果你用的是强制性imshow()
编辑 :
如果是cv::imread()
被抛出异常,我知道工作是下载的OpenCV源和构建它的机器上,因为重新安装的OpenCV没有解决这个问题的唯一解决方案 。
我不知道为什么你没有包括的问题,因为通常它.HPP文件,所以你该做的
#include <opencv2/highgui/highgui.hpp>
#include <opencv2\core\eigen.hpp>
但是你的代码似乎不错,但加cv::waitKey(0);
后您的imshow。
你检查,我imread后存在? 也许文件读取失败
读取文件后做if ( I.empty() )
以检查它是否失败
您是否在使用Visual Studio 2010中运行OpenCV的代码? 如果是的话,尝试在Release模式下进行编译。