繁体   English   中英

更改/存储的像素值不会使输出图像变亮(使用 PIL 导入和 grok learning python hw)?

[英]Changed/stored pixel value won't brighten output image (using PIL import with grok learning python hw)?

我坚持这个 grok 学习问题(python 版本)。 我应该根据用户输入的文件更改图像的像素值以使其更亮。 我已经坚持了一个多星期,现在正在经历各种代码迭代。

每次我接近时,我都会停下来。 这是我计算输入文件像素值的最接近位置,然后使用该信息添加 50,使图像变得更亮。

以下是具体说明;

“如果我们将图像中每个像素的值增加相同的量,图像就会显得更亮。

编写一个程序,将给定图像中每个像素的值加 50。

您的程序应该要求用户输入要读取的图像文件的名称,然后创建一个名为 output.png 的新输出文件,其中包含亮化后的图像。

下面是用户选择给定的 yawn.png 的示例。

文件名称:打哈欠.png”

这是我当前的代码,它在添加值 50 之前计算图像的像素;

`

from PIL import Image
file = input("File name: ")
img = Image.open(file)
width, height = img.size
value = int(width * height + 50)
print(value)

`

我已将其更改为此,因为我使用了获取/放置像素但没有任何反应,或者我在 img.putpixel 中输入的值出现错误;

`

from PIL import Image
file = input("File name: ")
img = Image.open(file)
width, height = img.size
value = img.getpixel(int(width * height))
img.putpixel(int(width * height), value + 50)
img.save("output.png")

`

输出图像的外观示例如下; 变亮的猫图像

但这就是我不断得到的; 不正确的相同猫默认图像

我只是不知所措。 到目前为止,我班上还没有人做到这一点,所以他们无法提供帮助。 所以希望如果我弄明白了,我就能帮助别人。 有任何想法吗? 提前致谢。

基本上你可以用 lambda 函数来做到这一点:

from PIL import Image, ImageFilter
im1 = Image.open (input("File name: "))
im2 = im1.point(lambda p: p + 50)
im2.save('output.png')

这是最快和最简单的方法。 这是供将来使用的 lambda 支持页面: https ://www.w3schools.com/python/python_lambda.asp

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM