描述
给定n行m列的图像各像素点的灰度值,要求用如下方法对其进行模糊化处理:
-
四周最外侧的像素点灰度值不变;
-
中间各像素点新灰度值为该像素点及其上下左右相邻四个像素点原灰度值的平均(舍入到最接近的整数)。
输入
第一行包含两个整数n和m,表示图像包含像素点的行数和列数。1 <= n <= 100,1 <= m <= 100。
接下来n行,每行m个整数,表示图像的每个像素点灰度。相邻两个整数之间用单个空格隔开,每个元素均在0~255之间。
输出
n行,每行m个整数,为模糊处理后的图像。相邻两个整数之间用单个空格隔开。
样例输入
4 5
100 0 100 0 50
50 100 200 0 0
50 50 100 100 200
100 100 50 50 100
样例输出
100 0 100 0 50
50 80 100 60 0
50 80 100 90 200
100 100 50 50 100
思路:
1、我们对求出来的数加上0.5自动取int型达到四舍五入的目的
2、循环输入数组
3、按照题目的要求将“中间”像素点的值求出,并且套用我们的四舍五入的函数,将所有中间像素点的值赋值给另一个数组的相同位置
4、我们在输入时令声明一个b数组,让输入的a数组与b数组所有元素一致
5、因为替换掉了b数组中间像素点,因为题目要求,所以我们直接输出b数组即可
样例代码:
#include<iostream>
using namespace std;
double a[1000][1000];
double b[1000]