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

如何替换Numpy数组特定索引位置的多通道值

解决方案

步骤说明

要把图像中指定索引位置的RGB三通道统一替换为对应目标值,只需两步:将单通道目标值扩展为三通道形状,再直接赋值到图像的索引位置。

代码实现

import numpy as np

# 读取图像数组(假设已完成读取,形状为(256,256,3))
img = read_image(image).numpy()

# 索引数组(示例)
idx = np.array([[  2, 254],
                [  2, 255],
                [  3, 252],
                ...,
                [148, 169],
                [148, 170],
                [149, 169]], dtype=int64)

# 目标值数组(示例,形状为(11978,))
target_vals = np.array([150, 150, 130, ..., 120, 150, 160])

# 将单通道目标值转换为三通道形状(11978,3),每个位置的RGB值相同
target_rgb = np.stack([target_vals] * 3, axis=1)
# 也可以用repeat方式实现:target_rgb = np.repeat(target_vals[:, np.newaxis], 3, axis=1)

# 对图像的指定索引位置批量赋值
img[idx[:, 0], idx[:, 1]] = target_rgb

原理

图像数组通过img[idx[:,0], idx[:,1]]索引得到的是形状为(N,3)的子数组(N=11978),将目标值数组转换为相同形状后,就能直接完成批量赋值,每个索引位置的三个通道会被统一设置为对应的目标值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 09:33:25