You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何找出距离传感器1米内的摄像头索引?替代np.isclose方案

解决方法

不用np.isclose,直接通过复数差的模长计算距离是最可靠的方式,具体实现步骤:

  • 借助numpy的广播特性,计算每个摄像头与所有传感器的坐标差(复数形式)
  • 对每个坐标差取绝对值,得到两点间的直线距离
  • 检查每个摄像头是否存在至少一个传感器距离≤1米,提取对应的索引

示例代码:

import numpy as np

sensors = np.array([-1.6-0.8j, -1.1-0.8j])
cameras = np.array([-3.7-0.8j, -1.6+0.9j, -1.6-0.9j])

# 生成摄像头×传感器的距离矩阵
distances = np.abs(cameras[:, np.newaxis] - sensors)

# 标记每个摄像头是否满足"距离任意传感器≤1米"的条件
is_close = np.any(distances <= 1.0, axis=1)

# 获取符合条件的摄像头索引
target_indices = np.where(is_close)[0]

print(target_indices)  # 输出结果:[1 2]

为什么弃用np.isclose?

np.isclose的判断逻辑是|a - b| ≤ atol + rtol * |b|,默认使用了相对容差(rtol)。当传感器位置远离原点时,|b|数值很大,导致允许的误差阈值会远超过1米,完全满足不了固定距离的判断需求。直接计算模长和1米做比较,才是精准适配这个场景的方案。

内容的提问来源于stack exchange,提问作者boham

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 06:15:45