假设我有一个100x100的黑色jpeg。每个像素每次迭代都有1%的机会变白,我执行30次循环。
如果生成它更好,我想也许某种100x100阵列,其中每个值开始黑色(0),一些变为白色(1),然后将此数组转换为打印在控制台上的图像或保存(用于每次迭代)
如果有可能的话,我想进一步添加一个机会修改器,根据圆形曲线的高度,某些列比其他列具有更高的机会:中心的最大机会,并进一步减少。
我该怎么做呢?如果圆方程部分不能完成,没问题。只需改变方格就足够了。
答案 0 :(得分:1)
这应该让你前进:
import numpy as np
from scipy.misc import imsave
N = 100
def iterate(img, filename, it_num):
swaps = np.random.choice((0, 255), size=(N,N))
img = np.clip(img + swaps, 0, 255)
imsave(filename + '_it_' + str(it_num) + '.jpg', img)
if np.all(img):
return None
else:
return img
img = np.zeros((N, N), dtype=np.uint8)
it = 1
while img is not None:
img = iterate(img, 'output', it)
it += 1
最后一个满255的图像应该是白色的,但确实是黑色的。我不知道为什么,但我也不确定这是否重要。
你的圆方程式部分并没有以精确的方式制定,我跳过它。使用numpy的随机工具可能并不那么难。