从黑色100x100 jpg开始,并以一定概率将一些像素变为白色

2024-04-20 06:53:07 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

如果可能的话,我想进一步添加一个几率修饰符,根据圆曲线的高度,其中一些列的几率比其他列高:中心的几率最大,向外的几率越小

我该怎么做呢?如果圆方程部分不能做,没问题。只要换个方格就够了


Tags: 图像高度像素数组修饰符中心曲线jpeg
1条回答
网友
1楼 · 发布于 2024-04-20 06:53:07

这会让你走:

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

相关问题 更多 >