Код: Выделить всё
cv::imread
Код: Выделить всё
#pragma warning(push)
#pragma warning(disable: 4996)
// See https://stackoverflow.com/questions/4804298/how-to-convert-wstring-into-string
inline std::string wsstring_2_string(const std::wstring& wstr)
{
using convert_typeX = std::codecvt_utf8;
std::wstring_convert converterX;
return converterX.to_bytes(wstr);
}
#pragma warning(pop)
< /code>
Тогда я загружаю изображение: < /p>
const std::wstring imageWidePath = L"D:\\沙发模型12_0017.jpg";
const std::string imagePath = wsstring_2_string(imageWidePath);
const cv::Mat image = cv::imread(imagePath, cv::IMREAD_UNCHANGED);
assert(image.cols > 0 && image.rows > 0);
< /code>
wsstring_2_string()
Я проверил этот ответ. По сути, решение состоит в том, чтобы сначала прочитать файл в качестве байтового массива, используя функцию ОС, которая принимает широкую строку в качестве входного ввода. Затем создайте входной массив (
Код: Выделить всё
cv::InputArray
или, может быть, есть другой способ поддержать Unicode? Например, это может быть CV_32FC4, а также CV_8UC3.
Подробнее здесь: https://stackoverflow.com/questions/796 ... cters-in-c