- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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 6XXXXXXXXX...XXX..X..XX..X...X..X..XX.....XXXXXXXX7 7 4 4XXXXXXXXX...XXX..X..XX..X...X..X..XX.....XXXXXXXX0 0 0 0
输出:
对每个网格输出一行,是选中目标的周长。
例如:
18488
四·算法分析;
根据所给条件,很显然要用二维数组储存该病毒。 在存储时可用一个变量key来标记该位置有没有病毒,为接下来的遍历提供判断条件。
在储存函数中,只需用一个二重循环,不断从屏幕上获取字符,并按次序存到数组相应位置,并修改该位置的key值,即可解决存储问题。但是在实践中应注意回车符号对输入的干扰,对回车符号应不储存。
解决存储问题后,接下来就要解决遍历问题。可先算出所有病毒元素的总周长数,之后按照一定的规则逐个遍历,并判断该病毒元素周围有没有其他病毒元素,并实现相关对总周长自减的操作。最终可实现总周长的计算。
以上程序完成后,接下来要完成的问题就是病毒的识别,及寻找该病毒的所有病毒元素。本程序运用传函数解决病毒的识别问题。该函数可简单描述为:首先从鼠标选定的位置开始,把他的病毒元素识别值该外一个与其他识别值不同的值,之后判断其上下左右及斜对角八个方位是否有病毒元素,若有病毒元素,就要相应修改其病毒元素识别值(key)。按如此规则传下去,直到该病毒的所有病毒元素都被标记。
所有病毒元素都被标记后,便完成了病毒的识别。接下来的问题就是遍历。本程序用一个二重循环来按顺序不重复的遍历所有病毒元素。在遍历到某一位置时,首先运用病毒元素标记值判断该位置是否属于该病毒,若属于,在判断其上下左右是否有该病毒的其他病毒元素,并实现周长总数的自减操作。最后返回该周长值,让主函数按规则输出。
在完成上述工作后,接着对用户交互界面进行优化,接下来就是在主函数设置大循环,来实现多个测试例的同时测试。之后该程序就完成了 。
五·源程序及注释;
/* 病理图像识别 */
/*作者:王丹阳 */
#include stdio.h
#include conio.h
typedef struct{
//病理微元存储结构体
int key;//病理微元状态存储变量
}ACM;
int a;//病理图的长
int b;//病理图的宽
int h;//鼠标单机的
您可能关注的文档
- 利率显示屏设计.doc
- 别把尊严丢了-不在崇拜中迷失自我(人民版八年级下)PPT课件.ppt
- 别把尊严丢了z.ppt
- 制冷与低温技术原理—第九章 制冷装置(空调装置).ppt
- 别墅营销思路.pptx
- 初中物理电路部分的伏安法教学及训练.docx
- 刮出来的画中班PPT.ppt
- 初中综合实践主题活动《学生装的设计》说课课件.ppt
- 制取氧气(2012新教材公开课)6.ppt
- 制浆造纸工厂设计.doc
- springbooot+vue基于java的房屋维修系统毕业论文.doc
- 中国消防救援学院《单片机系统实验》2023-2024学年第一学期期末试卷.doc
- 2025年溧阳纺织化学品项目申请.pptx
- 景区门票包销合同模板(3篇).docx
- 【股票技术指标学习指南】第七章第三节货币需要量的测算.doc
- 2025春 _ 人教版七年级英语下册【unit4】看音标写单词.doc
- 2025春 _ 人教版七年级英语下册【unit5】看音标写单词.doc
- 2025春 _ 人教版七年级英语下册【unit6】看音标写单词.doc
- 2025春 _ 人教版七年级英语下册【unit7】看音标写单词.doc
- 2025春 _ 人教版七年级英语下册【unit8】看音标写单词.doc
文档评论(0)