• 1128:图像模糊处理


    时间限制: 1000 ms 内存限制: 65536 KB
    提交数: 8203 通过数: 3472

    【题目描述】

    给定n行m列的图像各像素点的灰度值,要求用如下方法对其进行模糊化处理:

    1.四周最外侧的像素点灰度值不变;

    2.中间各像素点新灰度值为该像素点及其上下左右相邻四个像素点原灰度值的平均(舍入到最接近的整数)。

    【输入】

    第一行包含两个整数n和m,表示图像包含像素点的行数和列数。1≤n≤100,1≤m≤100。

    接下来n行,每行m个整数,表示图像的每个像素点灰度。相邻两个整数之间用单个空格隔开,每个元素均在0~255之间。

    【输出】

    m行,每行n个整数,为模糊处理后的图像。相邻两个整数之间用单个空格隔开。

    【输入样例】

    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

    【来源】

    No

    代码

    #include<iostream>
    #include<cmath> 
    using namespace std;
    int main()
    {
      int m,n;
      int a[101][101];
      double b[101][101];
      int i,j;
      cin>>n>>m;
      for(i=1;i<=n;i++)
    	  for(j=1;j<=m;j++)
    	  cin>>a[i][j];
    
      for(i=1;i<=n;i++)
      {
          for(j=1;j<=m;j++)
      	  if((i==1||i==n||j==1||j==m)) b[i][j]=a[i][j];
    	  else b[i][j]=round((a[i][j]+a[i-1][j]+a[i+1][j]+a[i][j-1]+a[i][j+1])/5.0);
      }
      for(i=1;i<=n;i++)
      {
          for(j=1;j<=m;j++)
    	  cout<<b[i][j]<<" ";
       cout<<endl;
      }
        return 0;
    }
    
  • 相关阅读:
    UIimageView和UIimage的小区别
    transform
    block的一些注意事项
    category与协议的不同
    类扩展和category的小区别
    category的概念
    OC中的类扩展
    Java学习 第三章 java基础(三)
    Java学习 第三章 java基础(二)
    Java学习 第三章 java基础(一)
  • 原文地址:https://www.cnblogs.com/AlexKing007/p/12338533.html
Copyright © 2020-2023  润新知