尽管在openCV 4.0.0中正确寻址,但imread()仍返回空垫

时间:2018-10-12 15:59:49

标签: c++ opencv image-processing

我是OPENCV的新手。 现在,我尝试使用imread()显示图像,但是imread()不起作用(请继续返回空的垫子。)但是当我尝试通过imread()绘制线,圆等时,效果很好。 / p>

因此,我认为解决地址问题。我尽了我所能,但仍然行不通。 我也用谷歌搜索了很多东西来解决它,但是我无法得到这个问题的任何答案。

我该怎么办?我错过了什么事吗?

我目前使用Windows 10,Visual Studio 2017和openCV 4.0.0 alpha。

这是我的代码。

#include <iostream>
#include <opencv2/opencv.hpp>

#ifdef _DEBUG
#pragma comment(lib,"opencv_world400d.lib")
#else
#pragma comment(lib,"opencv_world400.lib")
#endif

using namespace std;
using namespace cv;

int main()
{
    Mat image;
    image =imread("C:/Users/ymin/source/repos/Project1/Project1/BENZ.bmp",IMREAD_ANYCOLOR);
    if (image.empty()) 
    {std::cerr << "Could not open file" << std::endl; return (1);}
    imshow("image", image);
    waitKey();

    return 0;

}

1 个答案:

答案 0 :(得分:0)

来自OpenCV documentation for imread

  

如果无法读取图像(由于缺少文件,权限不正确,格式不受支持或格式无效),该函数将返回一个空矩阵。

这表明该文件不存在(可能是拼写错误?),您无权读取该文件,该文件的格式未被OpenCV识别,或者该文件已损坏。

确保文件位于您认为的位置,并且可读,并且已编译OpenCV以支持文件所用的格式。

(请注意,文件扩展名不能确定其格式,您可以获取JPEG文件并将其重命名为具有.bmp扩展名,但它仍然是JPEG文件。)