python - 如果 x 或 y 大于/小于 N,则过滤 x,y 坐标
问题描述
我正在努力寻找合适的算法来过滤 x,y 坐标列表(来源:)cv2.matchTemplate
。
我的数据是这样的:[(552, 429), (553, 429), (457, 477), (458, 478), (1208, 671), (1209, 671), (467, 712), (468, 712)]
这些坐标对于绘制矩形以定位在图片中找到模板的位置很有用,但我需要“单击”这个模板,所以我只需要一个角度。我只想保留与所有其他点的距离大于或小于 N 的坐标。
在这张图片中,我只想保留红点坐标而不是蓝色矩形坐标。
解决方案
我知道这是您需要的代码块。
N = 5
result = []
removed = []
for index, (x, y) in enumerate(data):
if not (x, y) in result and not (x, y) in removed:
removed += list(filter(lambda c: abs(c[0] - x) < N, data))
result.append((x, y))
print(result)
推荐阅读
- asp.net - 将 Bin 文件夹设置为 ASP.NET Windows 托管中的本地子文件夹
- python - 在 subprocess.Popen 之后关闭文件
- r - 如何使用 tidyr 包对不同时间点的重复数据进行平均并分别绘制?
- heroku - 测功机类型的 CPU 份额和计算特性的含义
- c# - 如何在 C# 中设置环境特定属性?
- excel - 如果不是“特定”范围,Activesheet."SomeRange".RemoveDuplicates 返回错误
- c# - 未知参数 returnUrl 身份
- shopware - 有没有办法检查 Shopware 自定义插件中的邮件是否发送成功?
- c++ - 如何释放数组的单个元素?
- javascript - SharePoint REST API:过滤器区分大小写