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

在NumPy数组中根据指定Cx、Cy提取对应行/列像素值的技术问询

嘿,我来帮你搞定在NumPy数组里提取指定中心坐标对应像素行、列值的需求~

解决NumPy数组中按中心坐标区间提取像素行列值的问题

先明确术语定义

  • Cx, Cy:目标区域的中心X、Y坐标
  • Row P, Col P:对应像素点的行、列索引值

需求说明

我们需要从NumPy数组中筛选出满足以下条件的样本:

Cx处于 min(Cx)±10 的区间内,同时Cy处于 min(Cy)±10 的区间内,然后返回对应的RowP和ColP值。

示例预期:当满足条件时,输出结果为 cX=298,cY=270,RowP=842,ColP=505

实现方案

我会提供两种常见数据存储形式的实现代码,你可以根据自己的实际情况选择:

方案1:使用结构化NumPy数组(推荐,数据关联性更强)

结构化数组可以把每组Cx、Cy、RowP、ColP作为一个整体存储,方便按字段访问:

import numpy as np

# 模拟你的数据集(替换成你实际的数据)
data = np.array([
    (298, 270, 842, 505),
    (310, 280, 850, 510),
    (305, 275, 845, 508),
    (350, 300, 880, 530)
], dtype=[('Cx', int), ('Cy', int), ('RowP', int), ('ColP', int)])

# 计算Cx和Cy的最小值
min_cx = data['Cx'].min()
min_cy = data['Cy'].min()

# 定义筛选条件:同时满足Cx和Cy的区间要求
filter_mask = (
    (data['Cx'] >= min_cx - 10) & 
    (data['Cx'] <= min_cx + 10) & 
    (data['Cy'] >= min_cy - 10) & 
    (data['Cy'] <= min_cy + 10)
)

# 筛选出符合条件的数据
filtered_samples = data[filter_mask]

# 遍历输出结果(如果有多个符合条件的样本,会全部输出)
for sample in filtered_samples:
    print(f"cX={sample['Cx']}, cY={sample['Cy']}, RowP={sample['RowP']}, ColP={sample['ColP']}")

方案2:使用独立的NumPy数组

如果你的Cx、Cy、RowP、ColP是分开存储的独立数组,可以用下面的代码:

import numpy as np

# 模拟独立数组形式的数据集(替换成你实际的数据)
Cx = np.array([298, 310, 285, 350])
Cy = np.array([270, 280, 265, 300])
RowP = np.array([842, 850, 835, 880])
ColP = np.array([505, 510, 498, 530])

# 计算最小值
min_cx = Cx.min()
min_cy = Cy.min()

# 生成筛选掩码
filter_mask = (
    (Cx >= min_cx - 10) & (Cx <= min_cx + 10) &
    (Cy >= min_cy - 10) & (Cy <= min_cy + 10)
)

# 提取符合条件的对应值
selected_Cx = Cx[filter_mask]
selected_Cy = Cy[filter_mask]
selected_RowP = RowP[filter_mask]
selected_ColP = ColP[filter_mask]

# 输出结果
for cx, cy, rowp, colp in zip(selected_Cx, selected_Cy, selected_RowP, selected_ColP):
    print(f"cX={cx}, cY={cy}, RowP={rowp}, ColP={colp}")

结果验证

在方案1的模拟数据中,min(Cx)=298,min(Cy)=270,对应的区间是288≤Cx≤308、260≤Cy≤280,符合条件的样本会被筛选出来,其中就包含你预期的cX=298,cY=270,RowP=842,ColP=505。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:24:13