【问题标题】:How to changed colours of some pixels of an image?如何改变图像某些像素的颜色?
【发布时间】:2013-11-02 07:58:37
【问题描述】:

我正在尝试留下三分之一的图片素材,将中间的所有黑色更改为黄色,并将底部三分之一的黑色更改为蓝色。我知道如何改变颜色,我面临的问题是我不知道如何只选择三分之一的像素来操作它们。这就是我所拥有的..

def changeSpots1():
    file = pickAFile()
    picture = makePicture(file) 
    show(picture)
    pix = getAllPixels(picture)
    for p in pix:
        intensity = (getRed(p) + getGreen(p) + getBlue(p))
        c = getColor(p)
        if (intensity < 150):              
            newColour = setColor(p, yellow)
    repaint(picture)

我正在使用一个名为 JES 的程序来编写此程序,以防您想知道诸如 pickAFile 之类的命令。 感谢您的帮助!

【问题讨论】:

标签: python image pixel jes


【解决方案1】:

我对 JES 一无所知,但我猜getAllPixels 按通常的顺序返回像素:第一行,然后是下一行,然后是下一行,等等。

如果是这样:

pix = getAllPixels(picture)
third = len(pix) // 3
for p in pix[:third]:
    # do top-third stuff
for p in pix[third:third*2]:
    # do middle-third stuff
for p in pix[third*2:]:
    # do bottom-third stuff

这确实假设图片可以完美地分成三部分。如果不是,您将需要知道图片的宽度,以便您可以四舍五入到最近的完整行(因为否则前三分之一实际上可能是 250 个完整行和第 251 个的前 47 个像素,看起来不太好) .我不知道 JES 有什么函数来获取宽度,但我相信它很简单。

【讨论】:

    猜你喜欢
    • 2011-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-27
    相关资源
    最近更新 更多