1

我目前正在阅读一本使用像素数学的书。

问题是我该如何执行以下操作:

pmNewComputedImage("Ringing Paraboloid", 256,256,"(sqr(x)+sqr(y)) mod 256")

这将根据该方程式返回 256*256 图像(sqr(x)+sqr(y)) mod 256

这个想法是我无法在 numpy 中做到这一点。我仍然是numpy的新手。我只需要知道如何将行的平方添加到列中,将其修改为 256 并返回一个新数组。

编辑:

在像素数学中:

像素数学

在 numpy 和 matplotlib 中:

麻木的

谢谢。

4

1 回答 1

4

尝试这个:

x = np.arange(256).reshape(-1, 1)
y = np.arange(256)
rng_paraboloid = (x*x + y*y) % 256

import matplotlib.pyplot as plt
plt.imshow(rng_paraboloid, interpolation='nearest')

在此处输入图像描述

在 numpy-speak 中,数组xy的形状(256, 1)(256) 广播到一个共同的形状(256, 256)

于 2013-10-15T17:32:08.937 回答