zoukankan      html  css  js  c++  java
  • 1302图像模糊处理(二维数组)

    描述

    给定m行n列的图像各像素点的灰度值,要求用如下方法对其进行模糊化处理:
    1.四周最外侧的像素点灰度值不变;
    2.中间各像素点新灰度值为该像素点及其上下左右相邻四个像素点原灰度值的平均(舍入到最接近的整数)

    输入

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

    输出

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

    输入样例 1 

    4 5
    100 0 100 0 50
    50 100 200 0 0
    50 50 100 100 200
    100 100 50 50 100
    

    输出样例 1

    100 0 100 0 50
    50 80 100 60 0
    50 80 100 90 200
    100 100 50 50 100
    这道题用到二维数组,乍一看很难,但其实也没有多难。
    代码:
     1 #include<iostream>
     2 #include<bits/stdc++.h>
     3 using namespace std;
     4 int main()
     5 {
     6     int n,m;
     7     cin>>n>>m;  //输入行数和列数
     8     float a[n+1][m+1],b[n+1][m+1];   //定义二维数组
     9     for(int i=1;i<=n;i++)
    10     {
    11         for(int j=1;j<=m;j++)
    12         {
    13             cin>>a[i][j];    //输入二维数组
    14             b[i][j]=a[i][j];  //这个数组用来计算输出
    15         }
    16     }
    17     for(int i=2;i<n;i++)
    18     {
    19         for(int j=2;j<m;j++)
    20         {
    21             b[i][j]=(a[i-1][j]+a[i+1][j]+a[i][j-1]+a[i][j+1]+a[i][j])/5;  //模糊处理
    22         }
    23     }
    24     for(int i=1;i<=n;i++)
    25     {
    26         for(int j=1;j<m;j++) 
    27         {
    28             cout<<fixed<<setprecision(0)<<b[i][j]<<" ";  //行尾无空格输出
    29         }
    30         cout<<fixed<<setprecision(0)<<b[i][m]<<endl;
    31     }
    32         return 0;
    33 }
     
  • 相关阅读:
    日志模块
    模块介绍3
    模块介绍2
    模块介绍
    迭代器
    Python装饰器续/三元表达式/匿名函数
    Python装饰器详解
    LATEX LIAN XI
    BELLMAN 最短路算法
    B阿狸和桃子的游戏
  • 原文地址:https://www.cnblogs.com/cyk20081108/p/13473422.html
Copyright © 2011-2022 走看看