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

数组索引越界求助:axis 1索引128超出维度大小128

索引越界错误排查与解决

错误原因

你的代码触发索引越界是因为:

  • 当i遍历到原图像I的最后一行(即i = I.shape[0]-1)时,代码尝试访问I[i+1,j],此时i+1等于I.shape[0],超出了数组的合法索引范围(数组索引从0开始,最大索引为shape值-1)。
  • 同理,当j遍历到原图像的最后一列时,I[i,j+1]的j+1也会超出边界,导致报错。

修复方案

1. 调整循环范围

将i和j的循环终止条件改为原图像尺寸减1,避免访问超出边界的索引:

import numpy as np

# 假设I是输入图像数组,scale是缩放因子
# 预先创建放大后的图像数组(如果是scale倍放大)
New_img = np.zeros((I.shape[0]*scale, I.shape[1]*scale), dtype=I.dtype)

for i in range(I.shape[0] - 1):
    for j in range(I.shape[1] - 1):
        for k in range(scale):
            for l in range(scale):
                a = k / scale
                b = l / scale
                # 计算双线性插值结果
                val = round((1-a)*(1-b)*I[i,j] + (1-a)*b*I[i+1,j] + a*(1-b)*I[i,j+1] + a*b*I[i+1,j+1])
                # 赋值到放大后的对应像素位置
                New_img[i*scale + k, j*scale + l] = val

2. 额外修正(针对图像放大需求)

原代码中New_img[i,j]的赋值位置逻辑错误,如果你是要实现scale倍图像放大,需要将插值结果赋值到放大后的对应坐标i*scale + k和j*scale + l,同时提前创建对应尺寸的New_img数组。

内容的提问来源于stack exchange,提问作者Ehtaysham ur Rehman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 11:29:59