我对编码很陌生,而且我无法为我的问题找到解决方案。目前,我有一个分析照片的程序,以找到点网格的质心值(~50)。通常,代码会获取一些实际上不是点的额外数据点。
正如我原先所说,这些点位于物理网格上,有几个像素的误差(即同一行或列中任何两个给定的质心可能相差10个像素)。行和列分开大约200个像素。
相机可以稍微移动,所以我无法准确地告诉程序点的位置。
我想要的东西基本上就是......
(where xi and yi are the centroids of the ith dot)
Assume 0th point (smallest x and y) is on the grid.
for 1-n
if [10 < xi - x(i-1) < 190] and [10 < yi - y(i-1) < 190]
then delete i
else keep i.
我尝试过类似的事情:
all_data = [ column for column in all_data if not (30 <= all_data[j , 0] -
all_data[j+1, 0] <= 200) and (30 <= all_data[j , 1] - all_data[j+1, 1] <= 200)]
但我有两个问题。首先,我不知道如何假设第一个点已经在数据集中。第二,如果我找到了错误点,我不确定(因为第一个问题我不能让它运行)如果这将在查看时使用错误点作为j-1值第j个值在网格上(这会导致该值也被视为错误。