#P2579. Blurred Vision

Blurred Vision

中文题面:

描述

反走样是指当试图用有限数量的离散像素表示平滑曲线时产生的阶梯效应。

所有计算机显示器均由有限数量的像素组成,人们已提出多种策略来平滑锯齿边缘,并取得不同程度的成功。

Boudreaux 和 Thibodeaux 正在为下一款大型第一人称射击游戏开发渲染软件,但他们对反走样领域的进展了解甚少。

因此,他们决定采用一种非常简单(且视觉效果不佳)的方法来平滑粗糙边缘。不幸的是,这会模糊整个图像,但至少能消除锯齿!

通常,游戏显示为 m×nm×n 像素,但他们额外执行一步反走样处理,将图像转换为 (m1)×(n1)(m−1)×(n−1) 像素。每个维度减少一个像素不会被察觉,他们通过计算原始图像中每个 4×44×4 像素块的平均值(向下取整)来生成新像素。

例如,下图展示了原始图像(左)和反走样后的图像(右),其中数字表示不同的黑白灰度。

4440440040000000431310100

输入:

输入由最多 100100 个非空数据集组成,数据集之间无空行。每个数据集的格式如下:

起始行:一行 STARTRCSTART R C,其中RRCC 为整数(2R,C92≤R,C≤9),表示输入图像的行数和列数。

原始图像: RR 行,每行包含 CC090-9 的整数(无空格),表示像素的灰度值。

结束行:一行 ENDEND

所有数据集结束后,输入以一行 ENDOFINPUTENDOFINPUT 终止。

输出:

输出抗锯齿后的图像,其尺寸为 (R1)×(C1)(R−1)×(C−1)

每个输出像素的值通过对原始图像中对应位置的 2×22×2 像素块的灰度值取平均值(并向下取整)生成。

输入数据 1

START 2 2
00
00
END
START 2 9
012345678
012345678
END
START 4 4
4440
4400
4000
0000
END
START 9 9
900000009
090000090
009000900
000909000
000090000
000909000
009000900
090000090
900000009
END
ENDOFINPUT

输出数据1

0
01234567
431
310
100
42000024
24200242
02422420
00244200
00244200
02422420
24200242
42000024

来源

2003年美国南中央地区大学生程序设计竞赛