如何将一组近点聚类到单点?

时间:2018-08-06 17:39:10

标签: c++

我在openCV3 C ++中使用ORB来检测图像中的某些特征并获取真实坐标。但是我有一些非常接近的点,我不需要,我只需要其中之一即可。

X=[0.493953,0.490301,0.540664,0.575473,0.423641,0.49213,0.366055,0.395635,0.488464,0.486621,0.49213,0.358992,0.397844,0.575473,0.397844,0.425734,0.576992,0.580014,0.425734,-0.810798];
Y=[0.141909,0.154724,-0.03982,0.260174,-0.0699365,0.140797,0.121944,0.31197,0.13856,0.153795,0.137043,0.0239328,0.310085,0.256748,0.312835,-0.0683147,0.255281,0.253498,-0.0629622,-0.932006];

我需要将x中的近点及其对应的Y中的近点分组到一个新数组中,以便于:

X_new=[-0.810798, 0.358992, 0.395635, 0.423641, 0.486621, 0.540664, 0.576992]
y_new=[-0.932006,0.0239328, 0.31197, -0.0699365, 0.153795, -0.03982, 0.255281]

我首先尝试从x排序数据并运行嵌套循环,如果条件取决于x坐标之间的距离,但是我没有得到所需的输出。

1 个答案:

答案 0 :(得分:0)

正如我在评论中所说,一个更好的主意是使用k means clustering。尽管您可能无法获得与问题中提到的完全相同的观点,但是这些观点将非常接近您想要达到的目标。希望对您有所帮助。