gpt4 book ai didi

python - 一半图像在 elif 语句中模糊

转载 作者:太空宇宙 更新时间:2023-11-04 05:53:18 24 4
gpt4 key购买 nike

我正在尝试制作一个在象限中具有颜色变化的图像 enter image description here在每一个。我已经设法完成了一半的图像,但另一半只是模糊了 - 并且没有错误消息。知道出了什么问题吗?我要右上灰度,右下黑白

这是我的代码:

import cImage as image

img = image.Image("/home/users/groth1/Downloads/selfie.JPG")
newimg = image.EmptyImage(img.getWidth(), img.getHeight())
win = image.ImageWin(title="Pic",width=img.getWidth(),height=img.getHeight())
img.draw(win)

xQuadrantBoundary = img.getWidth()//2
yQuadrantBoundary = img.getHeight()//2

for row in range(img.getHeight()):
for col in range(img.getWidth()):
p = img.getPixel(col, row)

if row < yQuadrantBoundary:
if col < xQuadrantBoundary:
# upper left negative
newred = 255 - p.getRed()
newgreen = 255 - p.getGreen()
newblue = 255 - p.getBlue()
newpixel1 = image.Pixel(newred, newgreen, newblue)

img.setPixel(col, row, newpixel1)
elif col >= xQuadrantBoundary:
# upper right grayscale ***
red = p.getRed()
green = p.getGreen()
blue = p.getBlue()
avg = (red + green + blue) / 3.0
newpixel2 = image.Pixel(newred, newgreen, newblue)
img.setPixel(col, row, newpixel2)

elif row >= yQuadrantBoundary:
if col < xQuadrantBoundary:
# lower left no green
newred = p.getRed()
newgreen = 0
newblue = p.getBlue()
newpixel3 = image.Pixel(newred, newgreen, newblue)
img.setPixel(col, row, newpixel3)
elif col >= xQuadrantBoundary:
# lower right black and white ***
red = p.getRed()
if red > 140:
val = 255
else:
val = 0
newpixel4 = image.Pixel(newred, newgreen, newblue)
img.setPixel(col, row, newpixel4)

img.draw(win)
win.exitonclick()

最佳答案

newpixel2 = image.Pixel(newred, newgreen, newblue)

应该是

newpixel2 = image.Pixel(avg, avg, avg)

newpixel4 = image.Pixel(newred, newgreen, newblue)

应该是

newpixel4 = image.Pixel(val, val, val)

否则您将重用上次计算的 newrednewgreennewblue 值,因此会出现颜色“条纹”。

关于python - 一半图像在 elif 语句中模糊,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29068466/

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