概述
1128:图像模糊处理
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 26756 通过数: 11417
【题目描述】
给定nn行mm列的图像各像素点的灰度值,要求用如下方法对其进行模糊化处理:
1.四周最外侧的像素点灰度值不变;
2.中间各像素点新灰度值为该像素点及其上下左右相邻四个像素点原灰度值的平均(舍入到最接近的整数)。
【输入】
第一行包含两个整数nn和mm,表示图像包含像素点的行数和列数。1≤n≤100,1≤m≤1001≤n≤100,1≤m≤100。
接下来nn行,每行mm个整数,表示图像的每个像素点灰度。相邻两个整数之间用单个空格隔开,每个元素均在0∼2550∼255之间。
【输出】
nn行,每行mm个整数,为模糊处理后的图像。相邻两个整数之间用单个空格隔开。
【输入样例】
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
【参考代码】
#include<stdio.h> #include<math.h> #define N 110 int a[N][N],b[N][N]; int main() { int m,n; int i,j; scanf("%d%d",&n,&m); for(i=0;i<n;i++) for(j=0;j<m;j++) scanf("%d",&a[i][j]); for(i=0;i<n;i++) { for(j=0;j<m;j++) if(i==0 || i==n-1 || j==0 || j==m-1) 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=0;i<n;i++) { for(j=0;j<m;j++) printf("%d ",b[i][j]); printf("n"); } return 0; }
http://ybt.ssoier.cn:8088/problem_show.php?pid=1128
最后
以上就是自然汽车为你收集整理的信息学奥赛一本通(1128:图像模糊处理)的全部内容,希望文章能够帮你解决信息学奥赛一本通(1128:图像模糊处理)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复