Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 调整图像中的亮度_Python_Image - Fatal编程技术网

Python 调整图像中的亮度

Python 调整图像中的亮度,python,image,Python,Image,我要做的是,每当它要求输入时,我假设把一个值放在100和-100之间,在percentage_for_white函数中,我还必须将接收到的值转换成十进制。该值必须进入另一个调用 白色金额的百分比 有了它,它必须调整这个图像的光照,我们被分配在“像计算机科学家一样思考”一书中的“二维”章节和ActiveCode4编辑器中的activecodes上。我做了所有这些,但当我把它们放在一起时,它不断地说,白色的数量没有定义。我不知道我需要做什么来修复,所以请帮助 这就是我所拥有的: import ima

我要做的是,每当它要求输入时,我假设把一个值放在100和-100之间,在percentage_for_white函数中,我还必须将接收到的值转换成十进制。该值必须进入另一个调用

白色金额的百分比

有了它,它必须调整这个图像的光照,我们被分配在“像计算机科学家一样思考”一书中的“二维”章节和ActiveCode4编辑器中的activecodes上。我做了所有这些,但当我把它们放在一起时,它不断地说,白色的数量没有定义。我不知道我需要做什么来修复,所以请帮助

这就是我所拥有的:

import image
def main():
  percentage_for_white_amount()
  light_levels()

def light_levels():
  img = image.Image("luther.jpg")
  win = image.ImageWin(img.getWidth(), img.getHeight())
  img.draw(win)
  img.setDelay(1,15)   # setDelay(0) turns off animation

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

        newred =  255 * amount_white + p.getRed() * (1 - amount_white)
        newgreen =  255 * amount_white + p.getGreen() * (1 - amount_white)
        newblue =  255 * amount_white + p.getBlue() * (1 - amount_white)

        if newred >= 0 and newred <= 255:
          True
        if newgreen >= 0 and newgreen <= 255:
          True
        if newblue >= 0 and newblue <= 255:
          True

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

        img.setPixel(col, row, newpixel)

        img.draw(win)
        win.exitonclick()

def percentage_for_white_amount():
    percentage_white = -200
    while percentage_white < -100 or percentage_white > 100:
        percentage_white = input("Provide the amount of white to blend in the image (values -100 and 100): ")
        percentage_white = float(percentage_white)
        percentage_white = percentage_white / 10
        return percentage_white

main()
导入图像
def main():
白色金额的百分比()
光照水平()
def灯光_级别():
img=image.image(“luther.jpg”)
win=image.ImageWin(img.getWidth(),img.getHeight())
模拟平局(胜利)
img.setDelay(1,15)#setDelay(0)关闭动画
对于范围内的行(img.getHeight()):
对于范围内的列(img.getWidth()):
p=img.getPixel(列,行)
newred=255*白色金额+p.getRed()*(1-白色金额)
newgreen=255*白色金额+p.getGreen()*(1-白色金额)
newblue=255*白色金额+p.getBlue()*(1-白色金额)
如果newred>=0且newred=0且newgreen=0且newblue 100:
百分比\白色=输入(“提供要在图像中混合的白色量(值-100和100):”)
白色百分比=浮动(白色百分比)
白色百分比=白色百分比/10
返回百分比(白色)
main()

如果有人能帮我发现错误或帮我解决问题,我将不胜感激

我发现您的代码有两个问题

  • 函数的
    percentage\u white\u amount()
    中的
    percentage\u white
    是函数的局部变量,因此如果函数定义不正确,则需要在开头添加
    global percentage\u white
    语句

  • 函数
    percentage\u for\u white\u amount()
    中的
    return percentage\u white
    语句缩进太多,使其成为
    循环的一部分,因此它将在循环的第一次迭代结束时执行,而不考虑
    percentage\u white
    的当前值