鱼C论坛

 找回密码
 立即注册
查看: 3122|回复: 11

[已解决]python 图像编程题

[复制链接]
发表于 2022-3-25 16:05:56 | 显示全部楼层 |阅读模式
50鱼币
函数 main() 接收一个表示图像文件路径的参数 fn,对应的图像文件可能是 'RGB' 模式的彩色

图像,也可能是 'L' 模式的灰度图像,文件格式可能为 PNG、JPG、BMP之一,逐个读取图像

中像素的颜色值,如果是彩色图像就计算该像素颜色值各分量的平均值。然后计算图像中

灰度值或颜色分量平均值大于等于 200 的像素数量与该像素总数量的商,对结果进行

四舍五入后保留最多 2 位小数,返回最终计算结果。

删除下面代码中的 pass 语句,替换为自己的代码,完成要求的功能。代码中已导入的对象

不是必须使用的,是否使用可以自行决定。
from itertools import product
from PIL import Image

def main(fn):
    pass
最佳答案
2022-3-25 16:05:57
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[x, y]
            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[x, y]
            if gray >= 200:
                above_threshold_pixels += 1
    
    ratio = round(above_threshold_pixels / total_pixels, 2)
    return ratio

最佳答案

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-25 16:05:57 | 显示全部楼层    本楼为最佳答案   
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[x, y]
            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[x, y]
            if gray >= 200:
                above_threshold_pixels += 1
    
    ratio = round(above_threshold_pixels / total_pixels, 2)
    return ratio
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-6-17 09:50:05 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-6-17 10:17:34 From FishC Mobile | 显示全部楼层
Threebody1 发表于 2023-6-17 09:50

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-6-17 10:32:46 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-6-17 10:34:43 | 显示全部楼层

额,我有时间再去看看能不能通过评测,也不知道还能不能找到这个题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-6-17 10:35:32 | 显示全部楼层
isdkz 发表于 2023-6-17 10:34
额,我有时间再去看看能不能通过评测,也不知道还能不能找到这个题

先给我最佳吧
反正没人回答
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-6-17 11:03:50 | 显示全部楼层
sfqxx 发表于 2023-6-17 10:35
先给我最佳吧
反正没人回答


这样对@歌者文明清理员 太不公平了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-6-17 11:09:39 | 显示全部楼层
isdkz 发表于 2023-6-17 11:03
这样对@歌者文明清理员 太不公平了



他目前比我多
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-6-17 13:55:39 | 显示全部楼层
isdkz 发表于 2023-6-17 11:03
这样对@歌者文明清理员 太不公平了

就下去玩了会儿……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-6-21 23:48:23 | 显示全部楼层

答案正确,先给你最佳答案吧,是你自己做的还是找到chatgpt?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-6-22 09:26:45 | 显示全部楼层
isdkz 发表于 2023-6-21 23:48
答案正确,先给你最佳答案吧,是你自己做的还是找到chatgpt?

整体代码自己写的,社团刚写

gpt 负责找问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 08:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表