imread无法读取图像

时间:2015-03-26 16:53:35

标签: c++ opencv mat imread

我一直致力于检测离线手写签名的项目。我遇到了一个基本问题。我的程序无法使用imread()函数。它没有显示任何错误,但也没有加载图像。如果我检查图像,它会显示我指定的错误消息。我正在使用OpenCV 2.4.10与Microsoft Visual C ++ 2010,我正在使用Windows 8.

这是我配置OpenCV的方式有问题还是版本有问题?

我如何克服这个问题?

如果您有任何使用Microsoft Visual C ++配置OpenCV的完美教程,请与我分享。这是我正在运行的代码。而且,在运行时,输出对话框显示, Native'已退出,代码为-1 。现在我没有看到消息,“错误:图片无法加载.. !! ”。但问题仍未解决。

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main( int argc, char** argv )
{
    Mat image;
    image = imread("C:\Users\sony\Downloads\Shareit\Photo\New Doc 7_1.jpg",CV_LOAD_IMAGE_UNCHANGED);

    if (image.empty()) //check whether the image is loaded or not
    {
      cout << "Error : Image cannot be loaded..!!" << endl;
      //system("pause"); //wait for a key press
      return -1;
 }

      namedWindow("MyWindow", CV_WINDOW_AUTOSIZE); //create a window with the name "MyWindow"
      imshow("MyWindow", image); //display the image which is stored in the 'img' in the "MyWindow" window

      waitKey(0); //wait infinite time for a keypress

      destroyWindow("MyWindow"); //destroy the window with the name, "MyWindow"

      return 0;
}

2 个答案:

答案 0 :(得分:0)

我最近一直在使用opencv,这是迄今为止我发现的最好的Visual Studio opencv教程:

http://opencv-srf.blogspot.com.es/2013/05/installing-configuring-opencv-with-vs.html

主要是,您需要做的正确配置如下:

在我的电脑中设置环境变量 - &gt; Propierties-&gt;高级系统设置 - &gt;环境变量 - &gt; 使用以下参数创建一个新变量:变量名称:OPENCV_DIR,变量值:C:\ opencv \ build \

编辑变量“Path”,为此,在“变量名称”行的末尾添加以下内容:;%OPENCV_DIR%\ x86 \ vc11 \ bin

然后您应该配置Visual Studio:

右键单击项目名称,然后单击“Propierties” 在C / C ++中 - &gt; General-&gt;其他包含目录,复制并粘贴“$(OPENCV_DIR)\ include”

在Linker-&gt; General-&gt;其他库目录中复制并粘贴$(OPENCV_DIR)\ x86 \ vc11 \ lib

在链接器 - >输入 - >其他依赖项中,单击编辑并添加在“'C:\ opencv \ build \ x86 \ vc11 \ lib”中找到的库

注意:如果您的系统是64位而不是32位,请将“x86”替换为“x64”

您可以发布代码来分析问题吗?

答案 1 :(得分:0)

OpenCV documentation提供了使用Visual Studio设置OpenCV的教程,还有一些示例代码使用cv :: imread加载底部包含的图像。