Python elif语句中一半图像模糊

Python elif语句中一半图像模糊,python,image,graphics,Python,Image,Graphics,我正在尝试制作一个象限中的图像,每个象限中的颜色都有变化。我已经成功地完成了图像的一半,但另一半只是模糊了——并且没有错误信息。知道出了什么问题吗?我希望在右上角显示灰度,在右下角显示黑白 这是我的密码: import cImage as image img = image.Image("/home/users/groth1/Downloads/selfie.JPG") newimg = image.EmptyImage(img.getWidth(), img.getHeight()) win

我正在尝试制作一个象限中的图像,每个象限中的颜色都有变化。我已经成功地完成了图像的一半,但另一半只是模糊了——并且没有错误信息。知道出了什么问题吗?我希望在右上角显示灰度,在右下角显示黑白

这是我的密码:

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()
将cImage作为图像导入
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())
模拟平局(胜利)
xQuadrantBoundary=img.getWidth()//2
yQuadrantBoundary=img.getHeight()//2
对于范围内的行(img.getHeight()):
对于范围内的列(img.getWidth()):
p=img.getPixel(列,行)
如果行<象限边界:
如果col=xQuadrantBoundary:
#右上灰度***
红色=p.getRed()
绿色=p.getGreen()
蓝色=p.getBlue()
平均值=(红色+绿色+蓝色)/3.0
newpixel2=image.Pixel(新红、新绿、新蓝)
img.setPixel(列、行、新像素2)
elif行>=yQuadrantBoundary:
如果col=xQuadrantBoundary:
#右下角黑白***
红色=p.getRed()
如果红色>140:
val=255
其他:
val=0
newpixel4=image.Pixel(新红、新绿、新蓝)
img.setPixel(列、行、新像素4)
模拟平局(胜利)
win.exitonclick()

newpixel2=image.Pixel(新红、新绿、新蓝)

应该是


newpixel2=image.Pixel(平均、平均、平均)

newpixel4=image.Pixel(新红、新绿、新蓝)

应该是

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

否则,您将重复使用上次计算的
newred
newgreen
newblue
值,从而产生颜色的“条纹”