python 图像编程题
函数 main() 接收一个表示图像文件路径的参数 fn,对应的图像文件可能是 'RGB' 模式的彩色图像,也可能是 'L' 模式的灰度图像,文件格式可能为 PNG、JPG、BMP之一,逐个读取图像
中像素的颜色值,如果是彩色图像就计算该像素颜色值各分量的平均值。然后计算图像中
灰度值或颜色分量平均值大于等于 200 的像素数量与该像素总数量的商,对结果进行
四舍五入后保留最多 2 位小数,返回最终计算结果。
删除下面代码中的 pass 语句,替换为自己的代码,完成要求的功能。代码中已导入的对象
不是必须使用的,是否使用可以自行决定。
from itertools import product
from PIL import Image
def main(fn):
pass from itertools import product
from PIL import Image
def main(fn):
img = Image.open(fn)
pixels = img.load()
total_pixels = img.width * img.height
above_threshold_pixels = 0
if img.mode == 'RGB':
for x, y in product(range(img.width), range(img.height)):
r, g, b = pixels
avg_color = (r + g + b) / 3
if avg_color >= 200:
above_threshold_pixels += 1
elif img.mode == 'L':
for x, y in product(range(img.width), range(img.height)):
gray = pixels
if gray >= 200:
above_threshold_pixels += 1
ratio = round(above_threshold_pixels / total_pixels, 2)
return ratio
{:10_256:} sfqxx 发表于 2023-6-16 23:29
{:9_220:} Threebody1 发表于 2023-6-17 09:50
? @isdkz sfqxx 发表于 2023-6-17 10:32
@isdkz
额,我有时间再去看看能不能通过评测,也不知道还能不能找到这个题{:10_277:} isdkz 发表于 2023-6-17 10:34
额,我有时间再去看看能不能通过评测,也不知道还能不能找到这个题
{:10_312:}先给我最佳吧{:10_256:}
反正没人回答 sfqxx 发表于 2023-6-17 10:35
先给我最佳吧
反正没人回答
这样对@歌者文明清理员 太不公平了{:10_256:} isdkz 发表于 2023-6-17 11:03
这样对@歌者文明清理员 太不公平了
{:10_306:}{:10_324:}{:10_266:}
他目前比我多 isdkz 发表于 2023-6-17 11:03
这样对@歌者文明清理员 太不公平了
就下去玩了会儿…… sfqxx 发表于 2023-6-16 23:29
答案正确,先给你最佳答案吧,是你自己做的还是找到chatgpt?{:10_256:} isdkz 发表于 2023-6-21 23:48
答案正确,先给你最佳答案吧,是你自己做的还是找到chatgpt?
整体代码自己写的,社团刚写
gpt 负责找问题
页:
[1]