我让ChatGPT帮助我在加载为numpy数组的图像中随机选择像素。它给我的解决方案实际上工作得很好,但我很难理解它是如何工作的:
from PIL import Image
import numpy as np
img = Image.open('image.png')
pix = np.array(img)
random_pixels = np.random.choice(pix.shape[0]*pix.shape[1], pix.shape[0]*pix.shape[1], replace=False)
selected_pixels = []
for p in random_pixels:
x = p // pix.shape[1]
y = p % pix.shape[1]
selected_pixels.append((x, y))
字符串
我不明白如何整数除法和模运算符应用于图像宽度实际上能够返回所有的坐标。
1条答案
按热度按时间30byixjq1#
从一个可以实际检查的小数组开始
字符串
数组是(3,4)形状,
choices
随机创建了0到11的值。型
迭代获取值
p
,并从中生成x,y
坐标。型
实际上,我不需要打印x,y,因为它们已经收集在
型
你应该能够计算出整数除法和模数如何将
p
转换为x
和y
。你不需要在循环中运行它。选择任何p
和任何shape
。