此算法主要用来雷达程序 数据拟合中
顺序执行的思路:
1,OutputPoint 第一个一定是空,第一次会把 MyPoint 中的第一个1号 导入进去。
2, for(int i=0; i<MyPoint.size();i++ )
{
PVector InputPoint =MyPoint.get(i);
MyPoint 中取出 2号 , 和outputpoint 进行比较,如果2号和outputpoint 比较之后,只要2号 和 outputpoint 中的任意一个 距离值在 BlobThreshold 范围内, 则此数值被认为是 面团里面的一个点 ,不需要踢出来。 所以 2号被忽略掉。
3,MyPoint 中取出 3号, 和outputpoint 进行比较,如果3号和outputpoint 比较之后,只要2号 和 outputpoint 中的任意一个 距离值在 BlobThreshold 范围内, 则此数值被认为是 面团里面的一个点 ,不需要踢出来。但是3号和1号的距离太大,所以 3号是面团外面的一个点 ,被踢出来 作为 outputpoint 中的一个点。
4,MyPoint 中取出 4号, 和outputpoint 进行比较,如果4号和outputpoint 比较之后,只要4号 和 outputpoint 中的任意一1 号 和3 号 距离值在 BlobThreshold 范围内, 则此数值被认为是 面团里面的一个点 ,不需要踢出来。 但是4号和1和3号的距离都很大,,所以 4号是面团外面的一个点 ,被踢出来 作为 outputpoint 中的一个点。
循环往复
以上算法经过和建刚进行现场测试,发现数据拟合的效果非常的好,数据画点之后基本上处于圆心位置。
2019.5.24