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

如何在OpenCV图像对应的Numpy 3D数组中按条件查找位置

解决Numpy 3D数组按多条件筛选位置的问题

实现步骤

利用Numpy的向量化运算和布尔索引即可高效完成,无需手动循环遍历:

  1. 导入依赖并定义数组
    先将示例列表转换为标准Numpy数组:
import numpy as np

array1 = np.array([[[186, 123, 231], [184, 126, 76]], [[224, 187, 97], [187, 145, 243]]])
array2 = np.array([150, 180, 250])
  1. 生成条件掩码
    分别对每个通道的条件进行判断,再取逻辑与得到同时满足所有条件的位置掩码:
# 逐个通道判断条件
cond_0 = array1[..., 0] > array2[0]  # 第一个元素大于array2对应值
cond_1 = array1[..., 1] < array2[1]  # 第二个元素小于array2对应值
cond_2 = array1[..., 2] < array2[2]  # 第三个元素小于array2对应值

# 三个条件需同时满足
mask = cond_0 & cond_1 & cond_2
  1. 提取目标位置
    使用np.where获取掩码中True对应的行、列索引,再合并为二维数组格式:
rows, cols = np.where(mask)
result = np.column_stack((rows, cols))

结果验证

运行代码后,result的输出为:

array([[0, 0],
       [0, 1],
       [1, 1]])

与预期完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 06:35:29