从黑色100x100 jpg开始,将某些像素变为白色,概率为

时间:2017-04-29 22:52:08

标签: python image numpy matplotlib

假设我有一个100x100的黑色jpeg。每个像素每次迭代都有1%的机会变白,我执行30次循环。

如果生成它更好,我想也许某种100x100阵列,其中每个值开始黑色(0),一些变为白色(1),然后将此数组转换为打印在控制台上的图像或保存(用于每次迭代)

如果有可能的话,我想进一步添加一个机会修改器,根据圆形曲线的高度,某些列比其他列具有更高的机会:中心的最大机会,并进一步减少。

我该怎么做呢?如果圆方程部分不能完成,没问题。只需改变方格就足够了。

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的随机工具可能并不那么难。