1302图像模糊处理(二维数组)

摘要:
描述具有m行和n列的图像的每个像素的灰度值,需要以下方法来模糊它:1.周围最外层像素的灰度保持不变;2.中间每个像素的新灰度值是该像素及其四个相邻像素的原始灰度值的平均值。第一行包含两个整数n和m,表示包含像素的图像的行数和列数。输出m行,每行n个整数,作为模糊图像。

描述

给定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 }
 

免责声明:文章转载自《1302图像模糊处理(二维数组)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Java生产环境线上栈故障排查问题(COPY)枚举的使用方法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Matlab中怎样将.dat格式的文件进行加载转化为一个矩阵??

在网上下载了一个数据集rating.dat,格式为.dat的,要在matlab中使用,必须将其转化为一个.mat格式的矩阵,下面写一下具体步骤: 第一步:打开matlab,界面如图: 然后点击“打开”选项:界面如下 例如选择rating.dat 文件  点击上图右下角“打开”,得到如下界面:  然后在“列分隔符”里进行选择,由于原文本文件格式如下图:...

理解矩阵(二)

转自:http://blog.csdn.net/myan/article/details/649018 接着理解矩阵。 上一篇里说“矩阵是运动的描述”,到现在为止,好像大家都还没什么意见。但是我相信早晚会有数学系出身的网友来拍板转。因为运动这个概念,在数学和物理里是跟微积分联系在一起的。我们学习微积分的时候,总会有人照本宣科地告诉你,初等数学是研究常量的...

图像处理-余弦变换

什么是DCT? 一维DCT变换 一维DCT变换时二维DCT变换的基础,所以我们先来讨论下一维DCT变换。一维DCT变换共有8种形式,其中最常用的是第二种形式,由于其运算简单、适用范围广。我们在这里只讨论这种形式,其表达式如下: 其中,f(i)为原始的信号,F(u)是DCT变换后的系数,N为原始信号的点数,c(u)可以认为是一个补偿系数,可以使DCT变换矩阵...

Mat的详解

【转】OpenCV中Mat的详解 每次碰到Mat都得反复查具体的用法,网上的基础讲解不多,难得看到一篇,赶快转来收藏~ 原文地址:http://www.opencvchina.com/thread-1039-1-1.html 目标我们有多种方法可以获得从现实世界的数字图像:数码相机、扫描仪、计算机体层摄影或磁共振成像就是其中的几种。在每种情况下我们...

( 鲁棒性主成分分析)Robust PCA

代码:GENERALIZED PRINCIPAL COMPONENT ANALYSIS 很久很久没有写学习笔记了,现在记录一个老知识。 主成分分析,这种方法可以有效的找出数据中最“主要”的元素和结构,去除噪音和冗余,将原有的复杂数据降维,揭示隐藏在复杂数据背后的简单结构。我们知道,最简单的主成分分析方法就是PCA了。从线性代数的角度看,PCA的目标就是使用...

Less(初步了解) flex(弹性盒,伸缩盒) 像素 视口(viewport) 手机像素 完美视口

Less(初步了解) 1.less是一门css的预处理语言。 2.less是一个css的增强版,通过less可以编写更少的代码实现更强大的样式。 3.在less中添加了许多的新特性,像对变量的支持、对mixin的支持。 4.less的语法大体上和css语法一致,但是less中增添了许多对css的扩展,所以浏览器无法直接执行less代码,要执行必须向将les...