Я пытаюсь изучить opencv на C++, так как очень скоро мне придется его использовать. Проблема, с которой я столкнулся, в точности соответствует названию: 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++ поддерживает объектно-ориентированное, процедурное и обобщенное программирование.
Итак, что решило мою проблему, так это изменение профиля сборки на «Выпуск». По какой-то причине создание профиля «Отладка» приводило к тому, что строка воспринималась как пустая, хотя это не так.