如何从 cv::Vec3f 转换为浮点类型?
Posted
技术标签:
【中文标题】如何从 cv::Vec3f 转换为浮点类型?【英文标题】:How to cast from cv::Vec3f to a float type? 【发布时间】:2017-02-22 11:36:50 【问题描述】:背景
我目前正在尝试在运行 Ubuntu MATE 16.04 LTS 的 Rapsberry Pi 上使用 ROS 构建自主无人机。解决目前识别红色圆圈的计算机视觉问题。
代码
我目前想转换这个:
cv::vector<cv::Vec3f> circles
放入一个浮点向量数组。但是,我很清楚,简单的演员阵容是不够的。那么我应该如何处理呢?
【问题讨论】:
通过使用 cv::vector 和 cv::Vec 类的文档访问器将浮点数复制到数组中? 【参考方案1】:那么简单的循环呢?
std::vector<cv::Vec3f> circles;
// 'circles' filled somehow...
// Get 'circles' as a vector of vector of floats 'v'
std::vector<std::vector<float>> v(circles.size(), std::vector<float>(3));
for(size_t i=0; i<circles.size(); ++i)
const cv::Vec3f& c = circles[i];
v[i][0] = c[0];
v[i][1] = c[1];
v[i][2] = c[2];
不要使用cv::vector
。请改用std::vector
。详情请见here。
【讨论】:
这不是 OP 要求的“浮点向量数组”。【参考方案2】:数据结构
在将cv::vector<cv::Vec3f>
类型转换为float
类型之前
你要明白cv::vector<cv::Vec3f>
是什么样的数据结构
是
就像一个二维向量std::vector<cv::Vec3f>
所以你不能只将浮点变量分配给二维向量
你必须使用另一个浮点类型的二维向量来存储数据内容
【讨论】:
感谢您这么晚的答复!很有帮助! @SharanDuggirala 我也遇到了同样的问题,谢谢你提出这个问题 @SharanDuggirala 竖起大拇指以上是关于如何从 cv::Vec3f 转换为浮点类型?的主要内容,如果未能解决你的问题,请参考以下文章
python pandas中如何将dataframe中的一列字符串类型转换为浮点类型?
Oracle数据库 如何把浮点型数1.23456789转换为只保留两位小数1.23