文理学院程序设计在线练习


图像8邻域极小值

Time Limit: 1 Second(s)    Memory Limit: 32 MB

Total Submission(s): 30   Accepted Submission(s): 10
Problem Description

一幅灰度图像可以看作一个二维数组,数组中每个元素对应图像中相应位置像素的灰度值(均为整数)。在图像处理中,8邻域极小值常作为一些分割算法的分割起始点。若与某一个像素点相邻的上、下、左、右、左上、右上、左下、右下8个点的灰度值都比该像素点灰度值大,则称该像素点为8邻域极小值点。给定一幅灰度图像(二维数组),请你编写程序,查找该数组中的8邻域极小值点。
注意:对于边缘(图像最外围一圈)的像素点,只需根据其存在的相邻点进行判断即可(参见Sample)。

Input

首先输入一个整数T(1<=T<10),表示测试组数。
每组测试输入包含两部分,第一行包含2个整数,分别为图像行数r(10>r>1)、列数c(10>c>1),接下来为相对应的图像信息(二维数组)。

Output

对于每组测试,输出和原图像尺寸相同的二维数组(r行c列),所有8邻域极小值点位置输出为1,其余位置为0。另外,每组测试之间留一个空行。

Sample Input
3
2 3
6 2 5
7 6 1
3 3
9 5 6
6 2 3
4 9 8
5 5
56 9 32 15 4
2 5 8 6 7
20 15 67 32 10
3 5 8 4 3
23 54 24 36 9
Sample Output
0 0 0
0 0 1

0 0 0
0 1 0
0 0 0

0 0 0 0 1
1 0 0 0 0
0 0 0 0 0
1 0 0 0 1
0 0 0 0 0
Source

2019期中考