【问题标题】:OpenCV wont load imageOpenCV不会加载图像
【发布时间】:2019-08-28 03:07:37
【问题描述】:

所以我链接了 OpenCV 的所有库,我已经添加了它工作所需的所有 .lib 和 .dll,但是当我去尝试获取图片以显示它时说图片不存在。所有路径都正确,图像在解决方案的主目录中,这是代码。

Mat color = imread("wall.jpg");

也试过了:

  • D:\\wall.jpgD:\wall.jpg

  • D:/wall.jpgD://wall.jpg


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

      using namespace std;

      using namespace cv;
      int main()
      {

    Mat color = imread("wall.jpg");
    if (color.empty())
    {
        cout << "image is empty" << endl;
        system("pause");
        exit(-1);
    }
    else
    {
        cout << "image is displayed" << endl;
        imshow("window", color);
    }



    waitKey();

    }

代码输出

image is empty Press any key to continue . . .

应该说

image displayed

【问题讨论】:

    标签: c++ image-processing opencv4


    【解决方案1】:

    我的回答假设您使用的是 Windows,因为您在描述中使用了“解决方案”一词。

    以下至少有一项是正确的:

    • 您的路径不正确。如果您从 Visual Studio 运行代码,则使用 "wall.jpg" 之类的相对路径使用工作目录,该目录不一定是解决方案目录。
      • 使用另一个机制来验证您的路径是否正确,例如在 Windows 上从命令行运行以下命令:start D:\wall.jpg。如果该命令返回文件未找到错误,则说明您的路径错误。
    • 您正在使用不受支持的文件格式。
      • 确保您可以打开并查看该文件。
      • 确保它是 JPEG、TIFF 或 PNG。扩展名可能不正确。如果您不确定,请尝试使用您知道是其中一种类型的文件。
    • 您没有读取该文件的权限。
      • 打开文件并确认您可以查看它。如果可以,并且您的 opencv 进程以同一用户身份运行,则应该没问题。

    来自imread docs

    从文件加载图像。

    函数imread 从指定文件加载图像并返回。如果图像无法读取(由于缺少文件、权限不正确、格式不支持或无效),该函数返回一个空矩阵(Mat::data==NULL)。

    ...

    在 Microsoft Windows* OS 和 MacOSX* 上,默认使用 OpenCV 图像随附的编解码器(libjpeg、libpng、libtiff 和 libjasper)。因此,OpenCV 始终可以读取 JPEG、PNG 和 TIFF。

    ...

    注意

    • 该函数根据内容而不是文件扩展名确定图像的类型。

    命令行工作目录

    如果从命令行运行,工作目录就是您所在的目录。如果您在操作系统上运行文件列表命令并且可以看到您的"wall.jpg" 图像,那么您来对地方了。使用 .\path\to\my\opencv-program.exe 之类的相对路径从此处运行您的 OpenCV 可执行文件。

    Visual Studio 调试工作目录

    【讨论】:

    • 我做了你所有的建议,但仍然发现我有同样的问题。操作系统可以使用 D:\ 驱动器和程序文件中的路径很好地打开文件。该程序仍然无法打开此文件,我确认它是 jpeg。我确认操作系统可以从我的帐户打开它,我可以访问图像不知道还能做什么。
    • 很奇怪。您可能想尝试进入 imread 以找出它失败的地方。您可能需要从源代码构建开放式 cv 来执行此操作。 github.com/opencv/opencv
    • 我发现它适用于我的 Surface Pro,但不适用于我的桌面
    猜你喜欢
    • 2016-06-10
    • 1970-01-01
    • 2011-09-11
    • 2021-05-25
    • 2017-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-25
    相关资源
    最近更新 更多