背景
我目前正在尝试建立一个自主无人机使用ROS在我的Rapsberry Pi,这是运行一个Ubuntu伙伴16.04 LTS。解决目前识别红圈的计算机视觉问题。
代码
我现在想转换一下:
cv::vector<cv::Vec3f> circles变成一个向量的数组。然而,我很清楚,一个简单的演员是不够的。那我该怎么处理呢?
发布于 2017-02-22 11:42:27
简单的循环怎么样?
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。
发布于 2017-11-20 06:28:41
数据结构
在将cv::vector<cv::Vec3f>类型转换为float类型之前
您必须了解cv::vector<cv::Vec3f>是什么样的数据结构。
就像一个二维向量std::vector<cv::Vec3f>

因此,不能只将浮点变量赋值给2d向量。
您必须使用另一个具有浮点类型的2d向量来存储数据内容。
https://stackoverflow.com/questions/42390253
复制相似问题