0

我有一个二维数组,其中每一行都是一个特征向量。每个特征向量如下: [x1 y1 x2 y2 x3 y3 x4 y4] 其中,(x1,y1) 是第一个特征点的坐标,(x2, y2) 是第二个特征点的坐标,依此类推...

我需要将特征点作为神经网络的输入。现在,我如何将 x1 和 y1 组合成一个有意义的单元,然后再将其输入神经网络?我被困在这里......有人可以建议该怎么做吗?我在某处读到我们必须使用一些二维变换……比如 SVD……但我不知道实际上是怎么回事???

我正在使用 C++ 和 OpenCV 2.3

任何帮助将不胜感激......谢谢!

4

1 回答 1

0

根据我的理解,将 (x1,y1) 与 (x2,y2) 等关联起来的数据结构的基本要求。在这种情况下,您可以将 std::pair 与 std::vector 一起使用。您可以查看以下示例以供参考。

std::pair<double,double> firstCoordinate,secondCoordinate;
std::pair<std::pair<double,double>,std::pair<double,double> > coordinateMap;
std::vector<std::pair<std::pair<double,double>,std::pair<double,double> > > coordinateMapVector;

在上面的示例中,firstCoordinate 和 secondCoordinate 分别是 (x1,y1) 和 (x2,y2),可以使用坐标映射进行映射。并且坐标映射向量将具有两个坐标系之间的所有此类映射的集合。

上述共享数据结构也可以通过如下所述的方式进行更新。

firstCoordinate  = std::make_pair(1.0,1.0);
secondCoordinate = std::make_pair(2.0,2.0);
coordinateMap    = std::make_pair(firstCoordinate,secondCoordinate);
coordinateMapVector.push_back(coordinateMap);
于 2021-01-07T11:41:12.430 回答