imread 找不到图像
imread couldn't find image
我用的是visual studio2013和opencv。我 运行 一个读取图像并显示它的简单代码。我将图像从 Donloads 文件添加到我的项目的资源文件中。当我 运行 下面的代码时,image.data
是空的。
#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;
}
尝试:C:\Users\pr\Downloads\im.png
如果路径正确,应该可以。
这是因为 VS 中的默认工作目录是 vcxproj
文件的位置($(ProjectDir)
的值)。
如果您想通过 VS 启动您的应用程序(即通过 F5
键),那么您应该覆盖项目的调试参数。例如,您可以将应用程序的工作目录设置为链接器创建的程序 (exe) 的位置,方法是将 Project menu -> Properties -> Configuration properties -> Debugging -> Working directory
的值设置为 $(OutDir)
.
我用的是visual studio2013和opencv。我 运行 一个读取图像并显示它的简单代码。我将图像从 Donloads 文件添加到我的项目的资源文件中。当我 运行 下面的代码时,image.data
是空的。
#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;
}
尝试:C:\Users\pr\Downloads\im.png
如果路径正确,应该可以。
这是因为 VS 中的默认工作目录是 vcxproj
文件的位置($(ProjectDir)
的值)。
如果您想通过 VS 启动您的应用程序(即通过 F5
键),那么您应该覆盖项目的调试参数。例如,您可以将应用程序的工作目录设置为链接器创建的程序 (exe) 的位置,方法是将 Project menu -> Properties -> Configuration properties -> Debugging -> Working directory
的值设置为 $(OutDir)
.