• 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;
    }
    
  • 相关阅读:
    oracle转义用单引号
    【转】plsql 永久注册码适用个版本
    winform datagridview某一列设为自动宽度
    Allow windows service to "Interact with desktop"
    Format a Hard Drive in Csharp C#格式化总结
    Lib New
    大嫂的HTML
    ASP.NET 分页控件
    linux搭建常用命令(运行jar,查看进程)
    如何用navicat连接linux服务器上的mysql以及重启服务
  • 原文地址:https://www.cnblogs.com/AlexKing007/p/12338533.html
Copyright © 2020-2023  润新知