【发布时间】:2013-02-28 20:28:33
【问题描述】:
我想编写一个函数,它会在这张照片的天空中创建一个随机数(m 和 n 之间,包括 m 和 n)的星星(http://tinypic.com/r/34il9hu/6)。我希望星星应该由单个白色像素或 4 个相邻白色像素组成的正方形随机组成。我也不想在树枝、月亮或鸟上放置一个“星星”(1 个像素)虽然
我将如何在 python 中执行此操作?任何人都可以帮忙吗?谢谢!
到目前为止我有这个:
到目前为止,我已经开始并提出了这个问题,但我不知道其中任何一个是否正确,或者即使我走在正确的轨道上:
def randomStars(small, large):
import random
file = pickAFile()
pic = makePicture(myPic)
#x = random.randrange(getWidth(pic))
#y = random.randrange(getHeight(pic))
for pixel in pic.getAllPixels():
if random.random() < 0.25:
pixel.red = random.randint(256)
pixel.green = random.randint(256)
pixel.blue = random.randint(256)
show(pic)
我不知道我在做什么:(
【问题讨论】:
-
这是必须在其他图片上工作的东西吗? Gimp 可能是你最好的选择;-)。
-
@Hoopdady:为什么?他尝试做的所有事情在
PIL、ImageMagick包装器、scipy等任何一个中都很容易做到。 -
@abarnert 为什么到哪一部分?我想知道它是否需要在其他图片上工作,因为让它不覆盖鸟、月亮或树会专门针对这张图片。为什么要使用 gimp?因为它非常快地随机点击钢笔工具并在天空中放置一些 1x1 或 4x4 的白点。
-
原始图像位于oi46.tinypic.com/34il9hu.jpg。
-
@Hoopdady:啊,你是在建议他手动做,而不是编写程序来做,而不是他在 gimp-fu 中使用 Python。
标签: python image random pixels