Я пытаюсь загрузить изображение двух способов:Пустого изображения считывается из файла (используя путь к файлу)
, введя явно путь к файлу (в коде). т.е .:
std::string g = "G:\\Downloads\\L-526.jpg"; cv::Mat frame = cv::imread(g); if (!frame.data) { printf(" No image data \n "); } cv::namedWindow("Display window", 1);// Create a window for display. cv::imshow("Display window",frame);
путем загрузки путь к файлу с GUI (с использованием "Обзор"):
std::string f; f = LoadImFromGUI(); //ReplaceStringInPlace(f,"\\","/"); // thought need replacing the double backslash cv::waitKey(0); // NOTE: IN THIS STEP, f IS TOTALLY IDENTICAL to g (from the 1st case) cv::Mat frame = cv::imread(f); if (!frame.data) { printf(" No image data \n "); } cv::namedWindow("Display window", 1);// Create a window for display. cv::imshow("Display window", frame);
В режиме отладки я получаю один и тот же путь, как в 1-й и 2-й случай. Но в первом случае изображение загружается и отображается, а во втором случае (где я просматриваю и загружаю одно и то же изображение) я получаю пустое изображение.
Что я должен изменить в своем коде?
Я задаюсь вопросом, почему первый вариант работает, так как я предположил бы, что он должен быть Cv :: Mat кадр = резюме :: imread (g.c_str()); – Micka
И попробуйте std :: cout << f.c_str() перед тем, как прочитать, чтобы проверить, сработала ли ваша обратная косая черта! – Micka