cycle cyletic
cycle cyletic

Reputation: 67

imread couldn't find image

I use visual studio 2013 and opencv. I run a simple code that reads a image and shows it. I add the image to resource files of my project from Donloads file. When I run below code, image.data is empty.

  #include "stdafx.h"
   #include <opencv2\core\core.hpp>
  #include <opencv2\highgui\highgui.hpp>
 #include <opencv2\opencv.hpp>


int _tmain(int argc, _TCHAR* argv[])
{

cv::Mat image;
image = cv::imread("im.png", CV_LOAD_IMAGE_COLOR);   // Read the file

if (!image.data)                              // Check for invalid input
{
    std::cout << "Could not open or find the image" << std::endl;
    return -1;
}

cv::namedWindow("Display window", cv::WINDOW_AUTOSIZE);// Create a window for display.
imshow("Display window", image);                   // Show our image inside it.

cv::waitKey(0);                                          // Wait for a keystroke in the window
return 0;

}

Upvotes: 1

Views: 2424

Answers (2)

Kornel
Kornel

Reputation: 5364

This is because the default working directory in VS is the location of your vcxproj file (value of $(ProjectDir)).

If you would like to start your application through VS (i.e. by F5 key) then you should overwrite the debugging parameters of your project. For example you can set the application's working directory to the location of the program (exe) that the linker creates by setting the value of Project menu -> Properties -> Configuration properties -> Debugging -> Working directory to $(OutDir).

Upvotes: 1

Whysmerhill
Whysmerhill

Reputation: 231

Try : C:\\Users\\pr\\Downloads\\im.png that should work if the path is correct.

Upvotes: 3

Related Questions