gpt4 book ai didi

Python模糊图像创建,从黑到白创建一幅精美的彩色画

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:42:08 24 4
gpt4 key购买 nike

在 Pyhton 上我想创建一张从黑到白的图片,我写了下面的代码。但我认为我犯了一个非常小的错误,这就是结果。

enter image description here

我实际上想创建一个类似的图像。你能看出我哪里出错了吗?

enter image description here

  import numpy as np
from PIL import Image
width = 100
height = 100
img = np.zeros((height, width), dtype=np.uint8)
xx, yy=np.mgrid[:height, :width]
circle = (xx - 50)**2 + (yy- 50)**2
for x in range (img.shape[0]):
for y in range (img.shape[1]):
intensity = circle[x][y]
img[x][y]= intensity
Image.fromarray(img, 'L').show()
Image.fromarray(img, 'L').save ('circlebad.png', 'PNG')

<--------------------------------编辑------------ ------------------------------>

当我插入时; intensity = intensity/512我的问题解决了。最后的代码;

    import numpy as np
from PIL import Image
width = 100
height = 100
img = np.zeros((height, width), dtype=np.uint8)
xx, yy=np.mgrid[:height, :width]
circle = (xx - 50)**2 + (yy- 50)**2
for x in range (img.shape[0]):
for y in range (img.shape[1]):
intensity = circle[x][y]
intensity = intensity / 512
img[x][y]= intensity
Image.fromarray(img, 'L').show()
Image.fromarray(img, 'L').save ('circlebad.png', 'PNG')

最佳答案

正如其他人所指出的,您在顶部图像中获得输出的原因是因为强度需要在 range(256) 内,而 Numpy 算术有效地执行 % 256 关于您的代码产生的值。

这是您的代码的修复版本。

import numpy as np
from PIL import Image

width = height = 320
radius = (width - 1) / 2
xx, yy = np.mgrid[:height, :width]

# Compute the raw values
circle = (xx - radius) ** 2 + (yy - radius) ** 2

#Brightness control
maxval = 255
valscale = maxval / (2 * radius ** 2)
circle = (circle * valscale).astype(np.uint8)

img = Image.fromarray(circle, 'L')
img.show()
img.save('circle.png')

输出:circle.png

greyscale circle

关于Python模糊图像创建,从黑到白创建一幅精美的彩色画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46512983/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com