即使路径正确,OpenCV也不会读取图像,字符串显示为空(imread_(''):无法打开/读取文件:检查文件路径/完整性)

问题描述 投票:0回答:1

我正在尝试用 C++ 学习 opencv,因为我很快就会被要求使用它。我面临的问题正如标题所说:即使路径正确,opencv 也不会打开(cv::imread())任何图像。

当我使用 cv::imread(path) 时出现错误

[ WARN:[email protected]] global loadsave.cpp:241 cv::findDecoder imread_(''): can't open/read file: check file path/integrity

我尝试过使用

/
//
\\\\
\\
。我尝试使用绝对路径和相对路径。我还尝试在不同的文件夹和不同的磁盘(c:/ 和 d:/)中打开不同的图像。我也尝试过更新我的 opencv 安装。

我现在使用 OpenCV 4.10 并使用 Visual Studio 2022。

这是我尝试运行的代码:

#pragma once
#include <opencv2/opencv.hpp>
#include <iostream>
#include <filesystem>
#include <windows.h>
#include <shobjidl.h>

int main() {

    cv::String filepath("D:/repos/faculdade/dataset/AnaCedran60dias.jpg");

    cv::Mat cvimg = cv::imread(filepath, 0);

    std::cout << "Path:\n" << filepath << std::endl;

    if(cvimg.empty())
        std::cout << "img wasnt read" << std::endl;
    
    cv::waitKey(0);
}
c++ string visual-studio opencv
1个回答
0
投票

解决我问题的方法是将构建配置文件更改为“发布”。由于某种原因,使用“调试”配置文件构建它会导致字符串被视为空,即使它不是空的。

© www.soinside.com 2019 - 2024. All rights reserved.