I want to load an image using Mat in openCV
My code is:
Mat I = imread("C:/images/apple.jpg", 0);
namedWindow( "Display window", CV_WINDOW_AUTOSIZE );// Create a window for display.
imshow( "Display window", I );
I am getting the following error in a message box:
Unhandled exception at 0x70270149 in matching.exe: 0xC0000005: Access violation
reading location 0xcccccccc.
Please note that I am including:
#include <cv.h>
#include <cxcore.h>
#include <highgui.h>
#include <iostream>
#include <math.h>
I've talked about this so many times before, I guess it's pointless to do it again, but code defensively: if a method/function call can fail, make sure you know when it happens:
Note that Windows' path uses backslash
\
instead of the standard/
used on *nix systems. You need to escape the backslash when passing the filename:C:\\images\\apple.jpg
Calling
waitKey()
is mandatory if you useimshow()
.EDIT:
If it's
cv::imread()
that is throwing the exception the only solution I know to work is downloading OpenCV sources and building it on the machine, since re-installing OpenCV doesn't fix the issue.Are you using visual studio 2010 to run the OpenCV code? If so, try compiling in Release mode.
I don't know why you don't have include problem because normally it .hpp file so you're suppose to do
But your code seems good but add a
cv::waitKey(0);
after your imshow.Have you checked that I exists after imread? Perhaps the file read failed
After reading a file do
if ( I.empty() )
to check if it failedAs pointed out by @karlphillip, however trivial it may sound but this statement " You need to escape the backslash when passing the filename: C:\images\apple.jpg" is really important.