对图像进行模糊处理:
cpp1#include <iostream> 2#include <cmath> 3using namespace std; 4 5int main() { 6 int n, m; 7 cin >> n >> m; 8 9 int image[100][100], blurred[100][100]; 10 11 // 读入 12 for (int i = 0; i < n; i++) 13 for (int j = 0; j < m; j++) 14 cin >> image[i][j]; 15 16 // 处理 17 for (int i = 0; i < n; i++) { 18 for (int j = 0; j < m; j++) { 19 if (i == 0 || i == n-1 || j == 0 || j == m-1) { 20 blurred[i][j] = image[i][j]; 21 } else { 22 int sum = image[i][j] + image[i-1][j] + image[i+1][j] 23 + image[i][j-1] + image[i][j+1]; 24 blurred[i][j] = round(sum / 5.0); 25 } 26 } 27 } 28 29 // 输出 30 for (int i = 0; i < n; i++) { 31 for (int j = 0; j < m; j++) { 32 cout << blurred[i][j]; 33 if (j < m-1) cout << " "; 34 } 35 cout << endl; 36 } 37 38 return 0; 39}
i==0 || i==n-1 || j==0 || j==m-1round(sum / 5.0) 或 (sum + 2) / 5(整数)输入:
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