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

将X轴每隔第2个元素、Y轴每隔第3个元素改为黑色的代码调试求助

问题分析与解决

你的代码未生效是因为存在几个关键错误,逐个拆解:

  1. 变量未定义+操作顺序完全颠倒

    • 你直接调用picture.resize,但picture变量根本没定义,运行时会直接报错
    • 你先把未修改的原始图像保存成result.png,之后才对数组im做修改,导致保存的是原图
    • 最后显示的是未处理的picture_resized,不是你修改后的图像
  2. 索引逻辑不符合需求
    你要实现的是X轴(列方向)每隔第2个元素、Y轴(行方向)每隔第3个元素改为黑色,但原代码里im[0::2,0::2]是行和列都隔2个选取,im[0::3,0::3]是行和列都隔3个选取,完全不符合需求。正确的索引应该是行按0::3(每隔3行取一行)、列按0::2(每隔2列取一列)来定位目标像素。

修正后的代码:

from PIL import Image
import numpy as np
import matplotlib.pyplot as plt

# 加载图像并调整为500×500尺寸
picture = Image.open('Lenna.png').convert('RGB')
picture_resized = picture.resize((500, 500))

# 将图像转为numpy数组以便操作
im = np.array(picture_resized)

# 按需求修改像素:Y轴每隔第3个元素(行0、3、6...),X轴每隔第2个元素(列0、2、4...)设为黑色
im[0::3, 0::2] = [0, 0, 0]

# 保存修改后的图像
Image.fromarray(im).save('result.png')

# 显示修改后的图像
%matplotlib notebook
plt.imshow(im)
plt.show()

关键修正说明:

  • 先定义picture变量,加载图像后再执行尺寸调整
  • 将数组修改操作放在保存图像之前,确保保存的是处理后的结果
  • 调整索引逻辑匹配需求,精准定位要改成黑色的像素
  • 最后显示修改后的im数组,而非原始的未处理图像

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 03:50:13