C++ 动态矢量创建
c++ dynamic vector creation
我在opencv,c ++中使用kmeans聚类。我正在尝试为每个找到的集群创建一个新向量,并将结果点添加到其中。
我有:
vector<cv::Point2f> markerOne;
vector<cv::Point2f> markerTwo;
vector<cv::Point2f> markerThree;
vector<cv::Point2f> markerFour;
Mat labels, centers;
int attempts = 50, numberClusters = 4, flags = cv::KMEANS_PP_CENTERS;
TermCriteria tc;
kmeans(centroids, cNumber, labels, tc, attempts, flags, centers);
for (int i = 0; i < labels.rows; i++)
{
int idx = labels.at<int>(i);
Point2f original_point = centroids[i];
Point2f clustered_center;
clustered_center.x = centers.at<float>(idx, 0);
clustered_center.y = centers.at<float>(idx, 1);
我需要从这里开始,根据此循环中返回的 idx 值创建一个向量。我目前有:
if (idx == 0)
{
markerOne.push_back(original_point);
}
if (idx == 1)
{
markerTwo.push_back(original_point);
}
if (idx == 2)
{
markerThree.push_back(original_point);
}
if (idx == 3)
{
markerFour.push_back(original_point);
}
最多可能有 100 个集群,所以我正在寻找一种更动态的方式来做到这一点。
谢谢!
创建一个向量向量结构,并将点推入相应的向量中,如下所示:
std::vector<std::vector<Point2f> > vector_of_vector(labels.rows);
for (int i = 0; i < labels.rows; i++)
{
vector_of_vector[i].push_back(original_point);
}
相关文章:
- 如何为 c++ 的不同变量类型的结构元素创建动态数组?
- 当我使用自定义类型创建动态数组时,即使使用字符串,它似乎也不起作用
- 创建动态对象并将其推送到矢量中
- 在创建动态二维数组时,在A[i*c+j]中使用c有什么用,即c代表什么
- 无法在 CMake 中创建动态库并将其链接到另一个动态库?
- 编写所需的代码以创建动态一维整数数组
- 创建动态分配的数组C
- 试图创建动态分配的char数组时的分割故障
- 在 c++ 上创建动态数组时出错
- 使用 MSVC C++编译器创建动态大小的数组
- 问题:在类中创建动态数组
- 如何在C 中创建动态数组,该数组将在执行时决定其大小
- 使用 Cmake 安装时创建动态库
- 为 C 绑定创建动态以 null 结尾的参数
- 如何在C 中创建动态分配的2D结构阵列
- 为矩阵创建动态数组,以循环迭代器命名
- 如何在C 中使用类创建动态列表
- 读取该文件,然后创建动态数组
- 包装本征的张量类以创建动态秩张量?
- 如何在C++中创建动态对象列表