2019武大国重考研地理信息系统专硕(测绘工程/资源与环境)(GIS)复试上机题目分享

目录

    • 2019武大国重考研地理信息系统专硕(测绘工程/资源与环境)(GIS)复试上机题目分享
  • 1.前言
  • 2.题目要求
  • 3.新旧思路
    • 3.1旧思路
    • 3.2新思路
  • 4. 总结
  • 5.全部代码

1.前言

  有天晚上睡不着,突然想起来考研复试上机的题目到现在都没解决,于是开始回忆当时的解法,并思考新的思路。想不到的是很快有了一个自己认为还不错的方案,起码相对于当时的解法。在此记录。

2.题目要求

  原题目要求用C语言实现均值滤波算法,已经给出的是整个项目工程,其中函数,头文件,数据都已经写好了(数据是一个8×8的二维数组),用VS打开可以直接运行。我们需要做的就是在两个函数里面填代码实现功能。第一个函数实现模板为3×3的均值滤波,第二个则进行通用化,实现n*n大小的均值滤波。
  个人认为题目还是比较简单的,只要会基础的C语法,把思路描述出来就好了。甚至只写注释都是会给分的,下来之后分数也普遍偏高,所以你懂的,并不是越好的学校会越为难大家。

3.新旧思路

3.1旧思路

  考虑到对数据中间部分和边界滤波是不同的,因为中间的一部分可以直接查找周围的数值求和并平均,而边界上的值是缺的,比如第一行数据缺了上面的一行,最后一行缺了最下面一行。其中每一行列的情况也不同,以8×8数组为例,(0,0)和(0,7)一个左边缺一个右边缺。所以对数据分情况讨论。大概分成最中间部分 + 4个顶点 + 4条边界 9部分,依据每一类的不同情况计算相应的和。
  这种思路还是比较复杂的,当时两个小时3×3模板的基本做完了,N×N模板的只做了一半,因为没时间了。

3.2新思路

  考虑到均值滤波在边界处需要进行填充后操作,突然想到如果填充成一个新的数组,即把边界扩充,原数组的大小正好是现数组可以直接进行求和的大小,在这个数组上进行操作,那不是就不用分情况了!
为了方便理解,我放出原始数组和扩充后的数组图片。这里边界全部是0,还没有填充,可以直观对比。


  下一步就是对边界填充实际数值了,这也是有点麻烦的一步。如果是边界0填充的方式,那就简单很多了,省下一半工作。而现在使用最邻近边填充的话,仍然需要分情况对其赋值。这里就不展开讲了,主要是分上下左右4种情况,具体看最后的代码吧

4. 总结

  这个小代码还是很有趣的,对我来说有点意义。如果能帮到其他人就更好了大佬们有其他意见欢迎指点!目前没有优化,有些地方是不够简洁的。另外,还没有参考网上其他人的解决方案,等后面再补充。

5.全部代码

import numpy as np# 创建一个数组,用来进行均值滤波
n = 8
arr = np.zeros((n, n))
for i in range(n):for j in range(n):arr[i, j] = i + j*j
print('原数组----------')
print(arr)# 均值滤波算法。array为计算的数组,d为滤波模板的长度(d*d),d为奇数
def filtering(array, d):# 首先对原始数组进行扩充,以相邻边的值填充边界new_arr = np.zeros((len(array)+int(d/2)*2, len(array)+int(d/2)*2))# 对新数组赋值,把中间部分赋予原数组的值for s in range(int(d/2), len(array)+int(d/2)):for t in range(int(d/2), len(array)+int(d/2)):new_arr[s, t] = array[s-int(d/2), t-int(d/2)]print('原始数据赋值后的数组')print(new_arr)# 对新数组的最外围4个填充边界进行边界填充# 上边界new_arr[0:int(d/2), int(d/2):len(array)+int(d/2)] = new_arr[int(d/2), int(d/2):len(array)+int(d/2)]# 下边界new_arr[int(d / 2)+len(array):, int(d / 2):len(array) + int(d / 2)] = new_arr[len(array)+int(d/2)-1,int(d / 2):len(array) + int(d / 2)]# 左边界for k in range(0, int(d/2)):new_arr[:, k] = new_arr[:, int(d / 2)]# 右边界for p in range(int(d / 2)+len(array), int(d / 2)+len(array)+int(d/2)):new_arr[:, p] = new_arr[:, len(array)+int(d/2)-1]print('边界填充后的数组----------')print(new_arr)# 赋值好后,可以计算# 建立一个新的数组,存放滤波后的值new_arr2 = np.zeros((len(array)+int(d/2)*2, len(array)+int(d/2)*2))for x in range(int(d/2), len(array)+int(d/2)):for y in range(int(d/2), len(array)+int(d/2)):value = 0for x2 in range(x-int(d/2), x+int(d/2)+1):for y2 in range(y-int(d/2), y+int(d/2)+1):value = value + new_arr[x2, y2]value = value / d / d# value = (new_arr[x-1, y-1] + new_arr[x-1, y] + new_arr[x-1, y+1] + new_arr[x, y-1]#                  + new_arr[x, y] + new_arr[x, y+1] + new_arr[x+1, y-1] + new_arr[x+1, y] +#                  new_arr[x+1, y+1]) / d / dnew_arr2[x, y] = round(value, 2)print(new_arr2)array = new_arr2[int(d/2):int(d/2)+len(array), int(d/2):int(d/2)+len(array)]print('结果:----------')print(array)return arrayfiltering(arr, 5)

2019武大国重考研地理信息(GIS,资源与环境)复试上机题目分享相关推荐

  1. 2019武大计算机考研,2019武大中哲考研经验分享

    历经一年的千锤百炼,如愿考上武汉大学中国哲学专业.深感考研的迷茫与艰辛,愿通过本文分享此次考研的经验,帮助还在研路上的你.本文仅为经验之谈,有不足之处还望海涵. 一.如何选择学校 以及2019武大中哲 ...

  2. 东北大学2019年计算机专业,2019年东北大学计算机考研经验贴,复试篇

    2019年东北大学计算机考研经验贴,复试篇 东北大学 发布于2019年9月23日 01:42 阅读数 5043 今年报考东大的人数很多,优秀的人太多,所以东大也很人性化的扩招了.我初试的专业排名其实在 ...

  3. 南京理工大学计算机上机,南京理工大学考研计算机复试上机题目.doc

    南京理工大学考研计算机复试上机题目 三是近几年的南理上机题, 年上机题) (一.二.三是近几年的南理上机题,四是 09 年上机题) <一> 一 1. 从键盘输入一个带有数字的字符串,将其中 ...

  4. 2022 GIS保研面试:武大国重、资环、中科院空天院;地信GIS专业/遥感专业保研夏令营面试、预推免面试

    目录 夏令营 ×2 预推免 ×2 面试遇到的提问问题(以ABCD标识代表院校) 尾声 面试学校:中科院空天院/中科院精测院/武大资环学院/武大测绘遥感国重实验室 我夏令营参加了空天院与精测院,预推免则 ...

  5. 2019年北邮网研院复试上机题目

    题目来源: 北邮2019网络安全学业&网络研究学院机试复试回忆版 今年网研上机白送,菜鸡如我,未能4A. 还是转一下题目,完善一下博客.因为代码在考场上A过了,这里就不贴代码了. 2019.网 ...

  6. 2019年北邮计算机院复试上机题目

    题目来源:北邮2019计算机院机试真题回忆版 2019.计算机院.Problem A 二进制 题目描述 32位二进制数X,对其进行X+1,X+3 操作,并输出.注意不能忽略前导0.(x<=232 ...

  7. 小心被举报!考研复试后不要分享考试内容!

    部分内容来源于 研招网 很多同学考研的时候会加一些群,在群里分享复习经验,或者吹水聊天.加个考研群还是有帮助的,不仅能够或者一些知识和经验,有时候还能得到别人分享的资料(真题或者笔记等),而且能让我们 ...

  8. 武大遥感国重是一个什么样的存在?值得去读吗?

    写在前面 "珞珈山下,东海之滨,桃李不言,下自成蹊"说的就是武汉大学啦~在武汉大学里有一个特殊的学院--测绘遥感信息工程国家重点实验室(以下简称武大测国重),以全国顶尖的遥感技术而 ...

  9. 网络技能大赛-2019年国赛真题[2019年全国职业技能大赛高职组计算机网络应用赛项真题-H卷]路由交换部分答案详解

    网络技能大赛-2019年国赛真题[2019年全国职业技能大赛高职组计算机网络应用赛项真题-H卷]路由交换部分答案详解 2022年全国职业技能大赛网络系统管理赛项相较2021年再次做出改动,Linux部 ...

最新文章

  1. mysql cmd终端服务无法启动
  2. 判断用户是否存在再进行新增_4招教你判断抖音真假粉,快速分辨抖音号的真实度!...
  3. java数据类型划分_一张图搞定java数据类型的划分
  4. .so 依赖目录 cmake_cmake浅析
  5. wxWidgets:wxURI类用法
  6. Apache Doris : 一个开源 MPP 数据库的架构与实践
  7. android web3j 代币查询_Android通过web3j以太坊智能合约交互
  8. Python爬虫 ---(1)爬虫基础知识
  9. Maven项目出现web.xml is missing and 《failOnMissingWebXml》is set to true,已解决
  10. warning LNK4070的解决办法
  11. linux中 ECShop的文件不能写
  12. python 函数篇(2)
  13. 【重磅】这家技术贼牛的开源公司开始狂招人啦!
  14. NC单据模板公式使用
  15. Echart柱状图数值显示
  16. 明朝取代元朝鲜为人知的秘密
  17. 攻防世界web做题步骤
  18. 初学盲打,免费,免安装,高颜值的在线打字练习网站
  19. Siege——多线程编程最佳实例
  20. 一个APP的开发流程

热门文章

  1. 私有云搭建:基于OpenStack 但不止于OpenStack
  2. stm32h750电路_基于STM32H750的开发板,可用于评估,学习和开发
  3. python框架-web2py
  4. linux git服务器搭建端口号是多少,Linux 环境 搭建Git 服务器,并且修改SSH端口使用...
  5. 二进制负数的一些问题
  6. 第二期:空间数据库管理工具arccatalog基础
  7. 4键电子手表说明书_电子手表那种四个按键的,怎么调时间?
  8. 负载均衡篇-LVS引出的网络知识:NAT、内网穿透及P2P
  9. 污水,中水处理plc控制系统
  10. 人脸对齐之GBDT(ERT)算法解读