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

索引缺陷:修改顶点颜色出错,始终得到水平线而非随机点

问题原因与解决方法

错误根源

你代码里的blank[XY] = 1是核心问题:numpy二维数组的索引规则是数组[行坐标, 列坐标],但你生成的XY是(列坐标, 行坐标)的顺序,且直接传入二维数组会触发高级索引的整行选取逻辑,导致整行被设为1,最终出现水平线。

修正后的代码

import cv2 as cv
import numpy as np
import random

# 创建300x300的白色画布
blank = np.ones((300, 300), np.uint8) * 255

# 生成300个随机的列、行坐标
X = [random.randrange(0, 300) for _ in range(300)]
Y = [random.randrange(0, 300) for _ in range(300)]

# 按[行, 列]的正确格式设置像素为纯黑(0比1更明显)
blank[Y, X] = 0

cv.imshow('Random Pixels', blank)
cv.waitKey(0)
cv.destroyAllWindows()

额外优化说明

  • 把像素值从1改成0:画布初始是255(纯白),0是纯黑,对比更清晰,能直观看到随机点。
  • 坐标范围从0开始:numpy数组索引从0到299,randrange(0,300)更贴合数组索引规则,避免混淆。
  • 简化坐标生成:不用分开写两个循环,直接用列表推导式生成X和Y,代码更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 03:21:01