gpt4 book ai didi

c++ - 将字符串转换为 opencv 点

转载 作者:太空宇宙 更新时间:2023-11-03 22:28:15 26 4
gpt4 key购买 nike

我有一个文件,其中包含视频文件每一帧中某个点的坐标值...我正在阅读此文本文件并尝试获取此坐标值。我将这些值读取为字符串。例如 [631,332]。我需要将此字符串转换为 cv::Point 值。我正在使用 C++。我是否必须拆分它并获取整数值并将其转换为点???或者还有其他方法吗?

最佳答案

在 c++ 中,来自 txt(格式化输入)的输入是 >> 的工作。定义你自己的 operator >> .像这样的东西:

istream& operator >> (istream &fi, cv::Point &p)
{
char char1, char2, char3;
fi >> char1 >> p.x >>char2 >> p.y >> char3;
if (!fi) return bad_istream;
if (char1=='[' && char2==',' && char3==']')
return fi;
else
throw bad_input_Point_format;
}

然后简单地使用 >>> 来输入你的 Point

(最终 bad_input_Point_format 可能是从 bad_istream 派生的异常类)或者,如果你不想扔,你可以尝试 setstate在 fi 中设置一个错误标志并返回它。

Bjarne Stroustrup:

Look up gets() and scanf() in your documentation and avoid them like the plague. By “dangerous,” we mean that such buffer overflows are a staple of “cracking” — that is, break-ins — on computers. Many implementations now warn against gets() and its cousins for exactly this reason.

关于c++ - 将字符串转换为 opencv 点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33911271/

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