gpt4 book ai didi

c++ - Opencv 函数和宽字符串

转载 作者:行者123 更新时间:2023-11-28 05:45:26 26 4
gpt4 key购买 nike

Opencv 函数,如 cv::imread() 仅将 strings 作为参数。所以,如果我写:

cv::Mat image = cv::imread("C:\\folder\\image.jpg");

一切正常,它将加载图像。但是,如果路径包含宽字符(例如希腊字母):

wstring path = L"C:\\folder\\εικονα.jpg";

我不能只写:

cv::Mat image = cv::imread( path );

我已经尝试过(但显然失败了):

cv::Mat image = cv::imread( string(path.begin(), path.end()) );

有什么解决办法吗?或者我只需要离开 opencv 并使用其他东西?

最佳答案

可以使用 std 的文件流和 OpenCV 的 imdecode 和 imencode 将图像写入/读取 wstring 路径。

    wstring path = getPath();
size_t size = getFileSize(path);
vector<uchar> buffer(size);

ifstream ifs(path, ios::in | ios::binary);
ifs.read(reinterpret_cast<char*>(&buffer[0]), size);

Mat image = imdecode(buffer, flags);

关于c++ - Opencv 函数和宽字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36322476/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com