北工大C语言课设病毒图象识别实验报告.doc

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
北工大C语言课设病毒图象识别实验报告

病毒图象识别 实验报告 一·实验内容; 2 二·实验目的; 4 三·实验要求; 4 四·算法分析; 6 五·源程序及注释; 8 六·流程图; 14 七·结果分析; 15 八·改进建议; 18 九·主要问题; 19 十·实验分工。 19 病毒图象识别实验报告 王丹阳小组 病理学实验室的技术人员需要分析幻灯片的数字图象。幻灯片上有许多要分析的目标,由鼠标单击确定一个目标。目标边界的周长是一个有用的测量参数。 编程任务:确定选中目标的周长。 数字化的幻灯片是一个矩形网格,里面有点“.”,表示空的地方,有大写字母“X”,表示目标的一部分。 方格中的一个X是指一个完整的网格方形区域,包括其边界和目标本身。网格中心的X与其边界上8个方向的X都是相邻的。任何两个相邻的X,其网格方形区域在边界或拐角处是重叠的,所以它们的网格方形区域是相邻的。 一个目标是由一系列相邻X的网格方形区域连接起来构成。在网格1中,一个目标填充了全部网络,在网格2中有两个目标,其中一个目标只占左下角的一个网格方形区域,其余的X属于另一个目标。 技术人员总能单击一个X,以选中包含该X的目标,记录单击时的坐标。行列号是从左上角开始,从1开始编号的。网格1中,技术人员可单击行2和列2选择目标;在网格2中,单击行2和列3就可以选中较大的目标,单击行4列3就不能选中任何目标。 一个有用的参数是目标的周长,假定每个X的每条边上有一个方形的单元。在网格1中目标的周长是8,网格2中,较大目标的周长是18。 目标不会包含任何完全封闭的孔,所以下图中最左边的网格不会出现,应该是右边的网格样式。 二·实验目的; (1)掌握c语言的基本编程技能,模块化编程思想,并初步学会在实际背景下灵活运用。 (2)设计程序算出任意给定的病毒图像的周长。 (3)在实践中检验c语言水平。 三·实验要求; 输入有多组网格,对每个网格,第一行是网格的行列数,鼠标单击的行列号,其整数范围都是1-20。 接下来就是由字符“.”和“X”构成的图形。 当一行有四个零时,标志输入结束。 一行中的4个数字之间各有一个空格,网格数据的行之间没有空行。 输入: 6 4 2 3 .XXX .XXX .XXX ...X ..X. X... 7 7 2 6 XXXXXXX XX...XX X..X..X X..X... X..X..X X.....X XXXXXXX 7 7 4 4 XXXXXXX XX...XX X..X..X X..X... X..X..X X.....X XXXXXXX 0 0 0 0 输出: 对每个网格输出一行,是选中目标的周长。 例如: 18 48 8 四·算法分析; 根据所给条件,很显然要用二维数组储存该病毒。 在存储时可用一个变量key来标记该位置有没有病毒,为接下来的遍历提供判断条件。 在储存函数中,只需用一个二重循环,不断从屏幕上获取字符,并按次序存到数组相应位置,并修改该位置的key值,即可解决存储问题。但是在实践中应注意回车符号对输入的干扰,对回车符号应不储存。 解决存储问题后,接下来就要解决遍历问题。可先算出所有病毒元素的总周长数,之后按照一定的规则逐个遍历,并判断该病毒元素周围有没有其他病毒元素,并实现相关对总周长自减的操作。最终可实现总周长的计算。 以上程序完成后,接下来要完成的问题就是病毒的识别,及寻找该病毒的所有病毒元素。本程序运用传函数解决病毒的识别问题。该函数可简单描述为:首先从鼠标选定的位置开始,把他的病毒元素识别值该外一个与其他识别值不同的值,之后判断其上下左右及斜对角八个方位是否有病毒元素,若有病毒元素,就要相应修改其病毒元素识别值(key)。按如此规则传下去,直到该病毒的所有病毒元素都被标记。 所有病毒元素都被标记后,便完成了病毒的识别。接下来的问题就是遍历。本程序用一个二重循环来按顺序不重复的遍历所有病毒元素。在遍历到某一位置时,首先运用病毒元素标记值判断该位置是否属于该病毒,若属于,在判断其上下左右是否有该病毒的其他病毒元素,并实现周长总数的自减操作。最后返回该周长值,让主函数按规则输出。 在完成上述工作后,接着对用户交互界面进行优化,接下来就是在主函数设置大循环,来实现多个测试例的同时测试。之后该程序就完成了 。 五·源程序及注释; /* 病理图像识别 */ /*作者:王丹阳 */ #include stdio.h #include conio.h typedef struct{ //病理微元存储结构体 int key;//病理微元状态存储变量 }ACM; int a;//病理图的长 int b;//病理图的宽 int h;//鼠标单机的

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档