前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >1066 图像过滤 Python实现

1066 图像过滤 Python实现

作者头像
用户7886150
修改2021-01-28 15:04:09
5930
修改2021-01-28 15:04:09
举报
文章被收录于专栏:bit哲学院

参考链接: Python程序来查找图像的大小(分辨率)

1066 图像过滤 (15 分) 

图像过滤是把图像中不重要的像素都染成背景色,使得重要部分被凸显出来。现给定一幅黑白图像,要求你将灰度值位于某指定区间内的所有像素颜色都用一种指定的颜色替换。 

输入格式: 

输入在第一行给出一幅图像的分辨率,即两个正整数 M 和 N(0<M,N≤500),另外是待过滤的灰度值区间端点 A 和 B(0≤A<B≤255)、以及指定的替换灰度值。随后 M 行,每行给出 N 个像素点的灰度值,其间以空格分隔。所有灰度值都在 [0, 255] 区间内。 

输出格式: 

输出按要求过滤后的图像。即输出 M 行,每行 N 个像素灰度值,每个灰度值占 3 位(例如黑色要显示为 000),其间以一个空格分隔。行首尾不得有多余空格。 

输入样例: 

3 5 100 150 0

3 189 254 101 119

150 233 151 99 100

88 123 149 0 255

输出样例: 

003 189 254 000 000

000 233 151 099 000

088 000 000 000 255 

问题分析: 

使用双重循环在二维数组中查找符合范围的值并进行替换,注意将所有结果补齐为3位 

程序(偶尔超时,看人品了(: ) 

a = input().split()

result = []

for i in range(int(a[0])):

    for j in input().split():

        if int(a[2])<=int(j)<=int(a[3]):

            result.append('0'*(3-len(a[4]))+a[4])

        else:

            result.append('0'*(3-len(j))+j)

for i in range(0,len(result),int(a[1])):

    print(" ".join(result[i:i+int(a[1])])) 

这是我的提交结果,差点超时:

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档