首页 > 学术发表知识库 > 霍夫曼编码毕业论文

霍夫曼编码毕业论文

发布时间:

霍夫曼编码毕业论文

本文主要介绍一下霍夫曼编码,

Huffman于1952年提出一种编码方法,该方法完全依据字符出现概率来构造异字头的平均长度最短的码字,有时称之为最佳编码,一般就叫做Huffman编码

先说一下背景,编码的含义: 给出定义: 待编码字符集S:待编码的字符的集合 待编码序列s:一个字符序列,其中每个字符来自带编码字符集

编码字符集S':用于编码的字符的集合 编码方法:对S中的每个字符,给定一个唯一对应的序列,其中序列中每个字符来自S'

举例来说: S={a,b,c,d,f} 可以是一个 待编码字符集 abbcdaf 是一个待编码序列

S'={0,1} 是一个编码字符集 编码可以理解为一个映射关系,比如 a -> 0 b -> 1 c-> 01 d-> 10 f->001

那么编码方法可以看成一个函数,实际上的编码过程,就是 把序列s中的字符,依次按照编码方法映射为编码字符序列的过程; 比如 abbcdaf 经过上述编码方法编码后变为: 01101100001

如果编码字符集S' ={0,1} ,则称为2进制编码;

编码长度:对于待编码序列s;其中每个字符经过编码方法编码后,所得到的的最终序列的总长度 其中因为 可能是相同字符,它们对应的l也相等; 进一步,可以求出相对长度,其实就是 , 表示编码序列的总长度;因此,如果某个字符在 中出现的频率为 则编码相对长度公式如下: i遍历所有不同的字符集合,后文中不加说明都是指相对长度

以上就是编码定义;

下面介绍两种编码方式, 定长编码,不定长编码; 定长编码很好理解:每个字符经过编码方法之后的映射字符序列都是固定长度的;不定长就是长度不固定; 上述范例中的是不定长编码;

下面说说定长和不定长的区别: 首先,编码就意味着要解码,对于定长来说,只要编码方法和固定长度的大小,解码相当容易,隔固定间隔读取,再做逆向映射就ok了;

但对于不定长编码,可能出现冲突;

比如 a编码为 0 b编码为1 c编码为01

此时如果我收到一个编码后的序列为 01, 那么有两种可能,原序列为ab 或者原序列为c,这两种都合理,将无法正确解码;

不定长既然有这种缺陷,为何实际编码还是用不定长,原因就是不定长编码能够节省空间; 举例来说,如果有8个不同字符,用定长编码,每个字符的编码长度至少为3;( ) 但如果不定长编码,可以少一些,后文中将会给出一个例子;

那么不定长编码的缺陷怎么解决,我们发现之所以出现上述缺陷,一个主要原因在于,某些编码恰好是另外一个编码的前缀; 比如0是 01的前缀,如果不定长编码可以保证编码后的字符序列中没有一个是另外一的前缀,则这个问题就可以解决了;

满足这种条件的编码叫做前缀编码; 当然即使不是前缀编码,有没有办法让它可以正确解码,也是有的,但是这里为了简化先不讨论这种情况;

下面给出最优编码的定义; 就是给定一个序列,设计一种不定长编码方法,使得这个序列按照这个编码方法编码后的长度最小;(前提当然是要可以正确解码) 可以证明(略)最优编码方式可以在前缀编码中取到,因此我们可以只考虑前缀编码中的最优方式;

那么具体的最优编码是什么,就是本文主题,霍夫曼编码,就是最优前缀编码(也是最优编码)

在讲解霍夫曼编码之前,先说一下编码树的概念: 我们只考虑2进制编码, 显然大家都知道2叉树, 那么如果我给定一个完全无穷极2叉树,根节点不放值,左节点存0,右节点存1, 则任何一种2进制编码比如 0100101,我们可以把它在该树中的路径画出来;经历过的节点标上记号; 对于所有字符的所有编码,我们把这些路径上的节点全部标上记号(已经有的不用重复标记) 之后把这个无穷2叉树剪裁,只保留那些标记颜色的节点,得到一个2叉树,这个树,就是该编码的编码树; 比如我们上面的demo,这个树长这样:

我们有些节点打上了括号,表示这个节点对应的路径对应着一个编码,从图中可以看出,显然前缀编码意味着所有打括号的节点都是叶子节点,(这是因为叶子节点一定有括号,这一点是显然的,如果有不是叶子节点的节点右括号,它下面的叶子节点也有括号,便和前缀编码相矛盾了)

这样每一种编码,尤其是前缀编码,都可以用一个编码树来描述,前缀编码的编码树连括号都不需要用,因为默认都在叶子节点,则一个编码树(无括号)可以完全对应一种前缀编码

有了以上基础,我们来描述,霍夫曼编码,显然只需要把它的编码树结构描述清楚,霍夫曼编码也就描述清楚了,霍夫曼编码的编码树构造方法如下: 1,输入序列s, 首先计算s中出现的每个字符出现的频率,并且按照从小到大排序; 2,找到最小的两个,分别赋值0,1作为左右2个节点,并生成其父节点,其值取为两者的和,(这一次操作称为合并) 3,从S中去掉这两个字符,把这个父节点看成一个新字符加入到S中,其对应频率为两者的合,再重复上述过程, 4,如果在生成节点的过程中发现某个字符是新生成的,则直接拿这个字符对应的节点来用并保留其子节点

下面举个例子: a:10 b:3 , c: 5 d:1 这是出现频率 先取 b,d 标记为0,1 合并频率为 4(新字符记录为bd),变为 a:10 bd:4 c:5 再去bd 和 c 合并,新字符可记为c',频率为9,最后和a合并; 对应树如下:

这个树对应的就是霍夫曼编码,除了叶子节点是原字符集中的,其余的是新生成的中间字符不用考虑; 编码如下: a :1 b:000 c:01 d:001 长度计算公式为:

那么这个编码方式的编码长度为何最短?

终于可以说的全文最关键的部分,下面给出一个简明的证明: 首先,给出几个引理: 1,最优编码下,频率越小的字符编码必然越长 证明:如果不是这样,比如字符x的频率fx < 字符y的频率fy 并且它们在树中的路径长度(编码长度)lx0,说明后者的编码长度更小 矛盾; 2,最优编码下,频率最小的那两个字符的编码长度相等 证明:根据1,如果不是这样,则频率最小那个字符将有一个独一无二的最长的编码路径l,那么我们可以调整编码方式,把字符编码(对应某个叶子节点)的父节点作为其编码,并去掉该节点,那么这个新的叶子节点对应的路径必然不是其他字符编码的前缀,这是因为其他的长度l'<=l-1,如果新叶子节点是其他字符编码的前缀,则只有一种可能l'=l-1,这意味着这个其他字符的编码就是该编码,那它就是原来的最优编码的那个节点的前缀,矛盾; 同时其他编码不是它的前缀是显然的;

现在我们看霍夫曼编码方式: 首先从构造方式可以看出满足引理2,之后,那么意味着求最优编码长度的公式: 不妨设 就是频率最小的两个,则它们长度一定相等 公式变为: 从公式即可看出,该式子对应一个新的霍夫曼编码问题,也就是上文中去掉 1,2号字符,引入一个新的频率对应 的字符的编码问题;原来的最小值一定在新的和取最小值时取到; 这是因为: 新字符的频率为 ,因此实际上最优编码对应方程为: 也就是求满足条件的编码使得上式最小; 显然如果找到了这个编码, 对于原编码来说: 显然也取到最小值,因为两个式子完全相等( 是大前提)

并且一旦新编码是前缀码,1,2号生成的节点增加两个孩子,再去掉该节点编码这一操作,不会影响前缀码的正确性;

这样就证明了霍夫曼编码是最优编码; 实际上本文不单证明了霍夫曼编码是最优编码,实际上是给出了构造最优编码的思路,顺着该思路设计编码方式就自然而然的导出霍夫曼编码,

扩展码已经说明了用两种编码长度,于是根据已经求出来的代码长度,尝试两种编码长度(题目中是3、4),选择某一些代码是3位,再选择某一些代码是4位,求出平均长度,若是小于3.2,则可以。若不行,则选其他两种编码长度。

摘要: 多媒体通信技术是当今世界科技领域中最有活力、发展最快的高新信息技术,它时时刻刻都在影响着世界经济的发展和科学技术进步的速度,并不断改变着人类的生活方式和生活质量。多媒体通信综合了多种媒体信息间的通信,它是通过现有的各种通讯网来传输、转储和接收多媒体信息的通信方式,几乎覆盖了信息技术领域的所有范畴,包括数据、音频和视频的综合处理和应用技术,其关键技术是多媒体信息的高效传输和交互处理。关键词:多媒体 图象 音频 功能The application of multimedia technologyAbstract: Multimedia communications technology is the world's science and technology in the field of the most dynamic and fastest growing high-tech information technology, it always have influence in the world economic development and the pace of scientific and technological progress and changing the human way of life and quality of life . A variety of integrated multimedia communications between the communications media information, it is through the various existing communications network to transmit and receive multimedia information and dump the means of communication, cover nearly the area of information technology in all areas, including data, audio and video The integrated treatment and application technology, its technology is the key to the efficient transmission of multimedia information and interactive processingKey words: Multimedia audio features images引 言随着技术的迅速发展,图像、视频等多媒体数据已逐渐成为信息处理领域中主要的信息媒体形式。多媒体通信是信息高速公路建设中的一项关键技术,是多媒体、通信、计算机和网络等相互渗透和发展的产物,它将极大地提高人们的工作效率,改变人们的教育、娱乐等生活方式,是21世纪人们通信的基本方式。第一章 多媒体通信技术基础简介多媒体通信的基本概念和特征1.1 基本概念媒体是信息表示和传输的载体,是一个重要的概念。ITU-T I .374建议将媒体划分为感觉媒体、表示媒体、显示媒体、存储媒体和传输媒体5类。多媒体数据是指多种式样信息的载体,如文本、图形、图像、声音等数据。其特点主要有以下几点:(1)多媒体数据种类繁多(大多是非结构化数据),不同来源的媒体,具有完全不同的形式和格式;(2)多媒体数据量庞大;(3)多媒体数据具有时间特性和版本概念,如在视频点播系统中必须考虑到媒体间以及媒体内部在时间上的同步关系。由此可知多媒体数据与传统的数值和字符不同,因而其存储结构和存取方式也具有特殊性,描述它的数据结构和数据模型也是有差别的。在这种情况下就产生了一种全新的数据库系统--多媒体数据库系统。多媒体数据库是能够有效实现多媒体数据的存储、读取、检索等功能的数据库系统。它的主要特点是:(1)继承了传统数据库的一些优点,例如数据独立性、利用数据库查询语言进行高层次查询、开发控制、容错技术等;(2)能对具有时空关系的数据进行同步和管理。但是目前对于多媒体数据库的功能以及实现方法还没有达成共识,因而出现了多种形式的媒体数据库,并且实现方法也各不相同。从其总体发展上看,多媒体数据库的数据模型可分为关系数据模型、面向对象的数据模型和超媒体数据模型3类。基于不同数据模型的多媒体数据库管理系统(DBMS)的功能也有很大差别,通常基于关系数据模型的多媒体DBMS可以实现多媒体数据的存取,对多媒体数据对象之间的语义关系、时态关系、空间关系不加处理,所以这部分工作就留给应用程序去完成了。面向对象的数据模型和超媒体数据类型可以支持多媒体数据对象之间的语义关系、时态关系、空间关系的处理,其抽象程度更高,但DBMS的实现也相对复杂。在多媒体通信系统中另一个常出现的词汇是"超媒体"。在出版物中经常会出现表示注解意思的"注"字,由"注"你可以找到与之相关的一段文字或一篇文章。这种由"注"而链接到一段文字或一篇文章的链即称为超链拨,同理,超级链也可以将若干不同媒体链接起来,其集合便称为"超媒体"。1.2多媒体通信的特征多媒体通信技术的发展打破了传统通信的单一媒体、单一电信业务的通信系统格局,反映了通信向高层次发展的一种趋势,是人们对未来社会工作和生活方式的向往。多媒体通信技术是一种综合技术,涉及多媒体技术、计算机技术、通信技术等多个领域。多媒体通信系统必须同时兼有集成性、交互性、同步性3个主要特征。1.2.1 集成性多媒体通信系统的集成性指的是能对内容数据信息、多媒体和超媒体信息、脚本信息和特定的应用信息等4类信息进行存储、传输、处则和显现的能力。(1) 内容数据信息(2) 信息是以某一种结构的形式存在的,典型的结构有两种:一种是对象构,其中可处理的最小单元为对象(Object);另一种是文件结构,其中处理的最小单元为文件(File)。多媒体和超媒体信息多媒体和超媒体信息与单媒体信息不一样,它们是结构化的信息,由结构框架和内容数据2部分组成。多媒体和超媒体信息的最小表达形式由两类,一类称为对象,另一类称为文件。(3) 脚本信息脚本信息是一组特定的用语意关系联系起来的、结构化的多媒体和超媒体信息,需要提供表示这一组多媒体信息的运作过程和与外部处理模块间的关系。(4) 特定的应用信息上述3类信息都是低层信息,可以由标准来定义和表示。特定的应用信息是高层信息,是与应用密切相关的,将随应用场合的不同有很大的不同,它的表示方法是基于上述3类的基础之上的。1.2.2 交互性交互性指的是在通信系统中人与系统之间的相互控制能力。在多媒体通信系统中,交互性有两个方面的内容。一是人机接口,也就是人在使用系统的终端时用户终端向用户提供的操作界面;二是用户终端与系统之间的应用层通信协议。多媒体通信终端的用户对通信的全过程有完备的交互控制能力,这是多媒体通信系统的一个主要特征,也是区别多媒体通信系统与非多媒体通信系统的一个主要准则。1.2.3 同步性同步性指的是在多媒体通信终端上显现的图像、声音和文字均以同步方式工作。如用户要检索一个重要的历史事件的片断,该事件的活动图像或静止图像存放在图像数据库中,其文字叙述和语言说明则是放在其他数据库中。多媒体通信终端通过不同传输途径将所需要的信息从不同的数据库中提取出来,并将这些图像、声音、文字同步起来,构成一个整体的信息呈现在用户面前。多媒体通信系统中的同步性是多媒体通信系统最主要的特征之一,信息的同步与否决定了系统是多媒体系统还是非多种媒体系统。同步可在链路层级、表示层级和应用层级3个层面上实现第二章 多媒体音频技术音频技术发展较早,几年前一些技术已经成熟并产品化,甚至进入了家庭,如数字音响。音频技术主要包括四个方面:音频数字化、语音处理、语音合成及语音识别。音频数字化目前是较为成熟的技术,多媒体声卡就是采用此技术而设计的,数字音响也是采用了此技术取代传统的模拟方式而达到了理想的音响效果。音频采样包括两个重要的参数即采样频率和采样数据位数。采样频率即对声音每秒钟采样的次数,人耳听觉上限在20KHz左右,目前常用的采样频率为11KHz,22KHz和44KHz几种。采样频率越高音质越好,存贮数据量越大。CD唱片采样频率为44.1KHz,达到了目前最好的听觉效果。采样数据位数即每个采样点的数据表示范围,目前常用的有8位、12位和16位三种。不同的采样数据位数决定了不同的音质,采样位数越高,存贮数据量越大,音质也越好。CD唱片采用了双声道16位采样,采样频率为44.1KHz,因而达到了专业级水平。音频处理包括范围较广,但主要方面集中在音频压缩上,目前最新的MPEG语音压缩算法可将声音压缩六倍。语音合成是指将正文合成为语言播放,目前国外几种主要语音的合成水平均已到实用阶段,汉语合成几年来也有突飞猛进的发展,实验系统正在运行。在音频技术中难度最大最吸引人的技术当属语音识别,虽然目前只是处于实验研究阶段,但是广阔的应用前景使之一直成为研究关注的热点之一。第三章 多媒体图像视频技术3.1视频技术虽然视频技术发展的时间较短,但是产品应用范围已经很大,与MPEG压缩技术结合的产品已开始进入家庭。视频技术包括视频数字化和视频编码技术两个方面。视频数字化是将模拟视频信号经模数转换和彩色空间变换转为计算机可处理的数字信号,使得计算机可以显示和处理视频信号。目前采样格式有两种:Y:U:V4:1:1和Y:U:V4:2:2,前者是早期产品采用的主要格式,Y:U:V4:2:2格式使得色度信号采样增加了一倍,视频数字化后的色彩、清晰度及稳定性有了明显的改善,是下一代产品的发展方向。视频编码技术是将数字化的视频信号经过编码成为电视信号,从而可以录制到录像带中或在电视上播放。对于不同的应用环境有不同的技术可以采用。从低档的游戏机到电视台广播级的编码技术都已成熟。3.2图像压缩技术图像压缩一直是技术热点之一,它的潜在价值相当大,是计算机处理图像和视频以及网络传输的重要基础,目前ISO制订了两个压缩标准即JPEG和MPEG。JPEG是静态图像的压缩标准,适用于连续色调彩色或灰度图像。它包括两部分:一是基于DPCM(空间线性预测)技术的无失真编码,一是基于DCT(离散余弦变换)和哈夫曼编码的有失真算法。前者图像压缩无失真,但是压缩比很小,目前主要应用的是后一种算法,图像有损失但压缩比很大,压缩20倍左右时基本看不出失真。MJPEG是指MotionJPEG,即按照25帧/秒速度使用JPEG算法压缩视频信号,完成动态视频的压缩。MPEG算法是适用于动态视频的压缩算法,它除了对单幅图像进行编码以外还利用图像序列中的相关原则,将帧间的冗余去掉,这样大大提高了图像的压缩比例。通常保持较高的图像质量而压缩比高达100倍。MPEG算法的缺点是压缩算法复杂,实现很困难。第四章 多媒体通信系统1、 体系结构多媒体通信(multimedia communcations)是在位于不同地理位置的参与者之间召开的一种会议或者进行的交流,通过局域网(LAN)、广域网(WAN)、内联网(intranet)、因特网(Internet)或者电话网来传输压缩的数字图像和声音信号。像电视那样的多目标广播、录象机那样的流式播放、电话会议、电视会议、IP电话、可视电话和IP传真等等都是多媒体通信技术的一些具体的和各有特色的应用。多年来,国际电信联盟(ITU)为公共和私营电信组织制定了许多多媒体计算和通信系统的推荐标准,以促进各国之间的电信合作。ITU的26个(Series A~Z)系列推荐标准中,与多媒体通信关系最密切的7个系列标准如表4-1所示,三种类型的多媒体通信系统的核心技术标准集如表4-1所示。表4-1 ITU系列推荐标准系列名 主要内容Series G 传输系统、媒体数字系统和网络Series H 视听和多媒体系统Series I 综合业务数字网(ISDN)Series J 电视、声音节目和其他多媒体信号的传输Series Q 电话交换和控制信号传输法Series T 远程信息处理业务的终端设备2、网关的功能和结构网关是一台功能强大的计算机或者工作站,它担负线路交换网络(如电话网络)和信息包交换网络(如因特网)之间进行实时的双向通信,提供异种网络之间的连通性,它是传统线路交换网络和现代IP网络之的桥梁。IP电话(见"7.4 IP电话")的出现允许电话呼叫在信息包交换网络上进行,从而引发一场电信工业的革命。但IP电话在成为主流电话服务的道路上遇到了许多障碍。其中最大的一个问题是在IP电话网络和公众交换电话网络之间缺乏连通性。一个重要的原因是早期的网关存在对IP电话进入主流电话服务的限制。例如,通过网关建立呼叫比较困难,而且需要使用非常规的电话号码;不同的网关之间的兼容性妨碍呼叫的建立;声音的质量比较差、有回音以及延迟时间比较长等。这就促进了开发允许IP和PSTN客户能够相互通信的网关,其中的一个措施就是提高网关的处理能力。低档的网关有1~6个端口,典型地使用高档奔腾处理器的PC机方案,提供媒体处理、呼叫控制和信息包的处理等网关功能。高档网关把网关功能分散到几个处理器来实现,这叫做计算机基电话集成(computer-telephony integration,CTI)平台,可提供100多个端口。网关的基本功能可归纳为三种:(1) 转换协议(translating protocols):网关作为一个解释器,使不同的网络能够建立联系,例如,允许PSTN和H.323网络相互对话以建立和清除呼叫。(2) 转换信息格式(converting information formats):不同的网络使用不同的编码方法,网关将对信息进行转换,使异种网络之间能够自由地交换信息,例如声音和电视。(3) 传输信息(transferring information):负责在不同网络之间传输信息。网关的主要部件包括:(1) 线路交换网络(switched-circuit network,SCN)接口卡,这是一种典型的T1/E1或者叫做PRI ISDN线路接口卡,它们与线路交换网络进行通信。主速率接口(primary rate interface,PRI)由23个B通道和一个64 kb/s的D通道组成,叫做23B+D,相当于T1线的带宽。(2) 数字信号处理器(digital signal processors,DSP)卡,它执行的任务包括声音信号的压缩和回音的取消等。(3) 网络接口(network interfaces)卡,它用来与H.323网络进行通信,典型的网络卡包括10/100BaseT网络接口卡(network interface cards,NIC),或者把它们的功能集成到主机板上。(4) 控制处理器(control processor),它协调其他网关部件的所有活动,这个部件通常是在系统的主机板上。网关的主要软件包括:(1) 执行所有网关基本功能和选择功能的网关软件。例如,H.323网关平台(Gateway Platform)执行转换协议、转换消息格式和传输信息等基本功能,支持声音压缩、协议转换、实时的传真解调/再调制以及执行H.323系列协议。(2) 特定网关的应用软件,它执行自定义的功能以及管理和控制功能。3、会务器的功能和结构会务器(gatekeepers)是用于连接IP网络上的H.323电视会议客户,是电视会议的关键部件之一,许多人把它当作电视会议的"大脑"。它提供授权和验证、保存和维护呼叫记录、执行地址转换而不需要你去记忆IP地址、监视网络、管理带宽以限制同时呼叫的数目从而保证电视会议的质量、以及提供与现存系统的接口。会务器的功能一般都是用软件来实现。会务器的功能分成两个部分:基本功能和选择功能。会务器必须要提供的基本功能包括:"地址转换(Address Translation):使用一种可由注册消息(Registration messages)更新的转换表,把别名地址转换成传输地址(Transport Address)。这个功能在线路交换网络上的电话企图呼叫IP网络上的PC时显得尤其重要,在确定网关地址时也很重要。准入控制(Admissions Control):使用准入请求/准入确认/准入拒绝ARQ/ARC/ARJ(Admission Request, Confirm and Reject)消息,对访问局域网进行授权。H323标准规定必须要有用来对网络服务进行授权的RAS消息(RAS messages),RAS是一个注册/准入/状态(Registration/Admission/Status)协议,但它不定义授权存取网络资源的规则或者政策,因此服务提供者需要会务器来干预现存的授权方法。此外,企业管理人员和服务提供者也许想使用他自己的标准来授权,例如,根据订金、信用卡等。带宽控制(Bandwidth Control):支持RAS带宽消息(RAS bandwidth messages),即带宽请求/带宽确认/带宽拒绝BRQ/BCF/BRJ(Request, Confirm and Reject)消息,以强制执行带宽控制。至于如何管理则要根据服务提供者或者企业管理人员的政策来确定。在许多情况下,如果在网络或者特定的网关不拥挤的况下,对任何带宽的请求都应该给予满足。区域管理(Zone Management):用于管理所有已经注册的H.323端点(endpoint),为它们提供上面介绍的功能。至于确定哪个终端可以注册以及地理或者逻辑区域的组成(单个会务器管理的终端、网关和多点控制单元MCU)则由网络设计人员决定。会务器提供的选择功能包括:呼叫控制信号传输方法(Call Control Signalling):在H.323中有两种呼叫控制信号传输模型:会务器安排呼叫信号传输模型(Gatekeeper Routed Call Signaling Model)和直接端点呼叫信号传输模型(Direct Endpoint Call Signaling Model)。会务器可根据访问提供者的要求进行选择。呼叫授权(Call Authorization):会务器可根据服务提供者指定的条件对一个给定的呼叫进行授权或者拒绝。其条件可包括会议时间、预定的服务类型、对受限网关的访问权限或者可用的带宽等。带宽管理(Bandwidth Management):根据服务提供者指定的带宽分配确定是否有足够的带宽用于呼叫。呼叫管理(Call Management):提供智能呼叫管理。会务器维护一种H.323呼叫表以指示被呼叫终端是否处于忙状态,并为带宽管理(Bandwidth Management)功能提供信息。会务器的结构会务器通常设计成内外两层,如图4-8所示。会务器的内层叫做核心层,它由执行H.323协议堆的软件和实现多点控制单元MCU(multipoint control unit)功能的软件组成,有的软件开发公司把它叫做H.323会务器核心功能部件。MCU的主要功能是连接多条线路并自动或者在会议主持人的指导下手动交换电视号。会务器的外层由许多应用程序的接口组成,用于连接网络上现有的许多服务。外层软件

哈夫曼编码译码毕业论文

强 楼主这里懂这个的大概不多吧 还是希望楼主能得到解决!!!

class HaffmanNode //哈夫曼树的结点类{ int weight; //权值 int parent,left,right; //父母结点和左右孩子下标 public HaffmanNode(int weight) { this.weight = weight; this.parent=-1; this.left=-1; this.right=-1; } public HaffmanNode() { this(0); } public String toString() { return this.weight+", "+this.parent+", "+this.left+", "+this.right; } return code; } public static void main(String[] args) { int[] weight={5,29,7,8,14,23,3,11}; //指定权值集合 HaffmanTree htree = new HaffmanTree(weight); System.out.println("哈夫曼树的结点数组:\n"+htree.toString()); String[] code = htree.haffmanCode(); System.out.println("哈夫曼编码:"); for (int i=0; i

程序实现c语言实现:费诺编码

//D:\2010 代码\haffman\haffman\Node_statement.h#define MAXVALUE 1000//定义最大权值#define MAXBIT 100//定义哈夫曼树中叶子结点个数typedef struct{ char data;//字符值 int num;//某个值的字符出现的次数}TotalNode;//统计结点,包括字符种类和出现次数typedef struct{ TotalNode tot[300];//统计结点数组 int num;//统计数组中含有的字符个数}Total; //统计结构体,包括统计数组和字符种类数typedef struct{ char mes[300];//字符数组 int num;//总字符数}Message;//信息结构体,包括字符数组和总字符数typedef struct{ int locked[500];//密码数组 int num;//密码总数}Locking;//哈夫曼编码后的密文信息typedef struct{ char data;//字符 int weight;//权值 int parent;//双亲结点在数组HuffNode[]中的序号 int lchild;//左孩子结点在数组HuffNode[]中的序号 int rchild;//右孩子结点在数组HuffNode[]中的序号}HNodetype;//哈夫曼树结点类型,包括左右孩子,权值和信息typedef struct{ int bit[MAXBIT]; int start;}HCodetype;//哈夫曼编码结构体,包括编码数组和起始位void reading_file(Message *message);//从文件中读取信息int writing_file(Message *message);//将信息写进文件void total_message(Message *message,Total *total);//统计信息中各字符的次数void HaffmanTree(Total *total,HNodetype HuffNode[]);//构建哈夫曼树void HaffmanCode(HNodetype HuffNode[],HCodetype HuffCode[],Total *total);//建立哈夫曼编码void writing_HCode(HNodetype HuffNode[],HCodetype HuffCode[],Total *total);//将编码规则写进文件void lock(Message *message,HNodetype HuffNode[],HCodetype HuffCode[],Total *total,Locking *locking);//给文件信息加密编码void writing_lock(Locking *locking);//将已编码信息写进文件void first_function(HNodetype HuffNode[],HCodetype HuffCode[],Total *total,Message *message);void display(Total *total,HNodetype HuffNode[]);void writing_translate(Locking *locking,HCodetype HuffCode[],HNodetype HuffNode[],Total *total);//将已编码信息翻译过来并写进文//D:\2010 代码\haffman\haffman\function_mian.cpp#include"Node_statement.h"#include#include#include "cstdlib"using namespace std;int main(){ int i,j,choice,mark=0;//mark标记文件信息是否读入到内存中 HNodetype HuffNode[500];//保存哈夫曼树中各结点信息 HCodetype HuffCode[300]; Locking *locking; Total *total; Message *message; locking=new Locking; locking->num=0; total=new Total; total->num=0; message=new Message; message->num=0; //初始化变量 printf("┏ ┓\n"); printf("┣ haffman_code system ┫ \n"); printf("┗ ┛\n"); printf("\n\n"); choice=0; while(choice!=7 ){ printf("#〓§〓〓〓〓〓§〓〓〓〓§〓〓〓〓§〓# \n "); printf(" 0:go \n"); printf("※********** 1:从文件读取信息**********************※\n"); printf(" *********** 2:显示编码规则 ********************* \n"); printf(" ********** 3:将原文件信息写进文件 ************ \n"); printf(" ********* 4:将编码规则写进文件 ************ \n"); printf(" ********** 5:将编码后的信息写进文件 ********** \n"); printf(" *********** 6:将译码后的信息写进文件 *********\n"); printf("※***********7:退出 *****************************※\n"); printf("#〓§〓〓〓〓〓§〓〓〓〓§〓〓〓〓§〓# \n "); printf(" please input the choice "); cin>>choice; switch(choice) { case 1: reading_file(message);//从文件中读取信息 mark=1; break; case 2://显示编码规则 if(mark==0)cout<<"请先从文件中读取信息!"<num;i++)//显示编码规则 { cout<tot[i].data<<" "; for(j=HuffCode[i].start+1;jnum;j++) cout<num-1;i++) { printf("data weight lchild rchild parent \n"); printf(" %c %d %d %d %d\n",HuffNode[i].data,HuffNode[i].weight,HuffNode[i].lchild,HuffNode[i].rchild,HuffNode[i].parent); } }void reading_file(Message *message) /** 绝对路径下读取a_test.txt file message 中的num记录suoyou字符总数 ,放在nes【】中 equal to the buffer **/{ int i=0; char ch; ifstream infile("a_test.txt",ios::in | ios::out); if(!infile)//打开失败则结束 { cout<<"打开a_test.txt文件失败"<mes[i]=ch; i++; } message->num=i;//记录总字符数 infile.close();//关闭文件}int writing_file(Message *message) /** 把从数组message 的信息write to disk,a_test1.txt to save **/{ /* int i; ifstream outfile("a_test1.txt",ios::in ); //打开文件 if( !outfile )//打开失败则结束 { cout<<"打开a_test1.txt文件失败"<num;i++)//写文件 outfile.put(message->mes[i]); cout<<"信息写进文件成功"<num;i++) fprintf(fp1,"%d ",message->mes[i]); printf("文件写入成功!\n"); i=fclose(fp1); if(i==0) printf("文件关闭成功!\n");else printf("文件关闭失败!\n");}void total_message(Message *message,Total *total) /** 统计message中不同字符 的个数,和相同字符重复的次数,重复字符用mark标记, total.tot[] 放不同字符,TotalNode 类型(char,num) total.num 统计不同字符个数 使total这块内存空间有数据, **/{ int i,j,mark; for(i=0;inum;i++)//遍历message中的所有字符信息 { if(message->mes[i]!=' ')//字符不为空格时 { mark=0; for(j=0;jnum;j++)//在total中搜索当前字符 if(total->tot[j].data==message->mes[i])//搜索到,则此字符次数加1,mark标志为1 { total->tot[j].num++; mark=1; break; } if(mark==0)//未搜索到,新建字符种类,保存进total中,字符类加1 { total->tot[total->num].data=message->mes[i]; total->tot[total->num].num=1; total->num++; } } }}void HaffmanTree(Total *total,HNodetype HuffNode[]) /**create the haffman tree 不同字符个数为叶子节点个数对应书上的n, 相同字符的个数为其权值weight; get HuffNode to store the tree **/{ int i,j,min1,min2,x1,x2; for(i=0;i<2*(total->num)-1;i++)//初始化哈夫曼树并存入叶子结点权值和信息 { if(i<=total->num-1) HuffNode[i].data=total->tot[i].data; HuffNode[i].weight=total->tot[i].num; HuffNode[i].parent=-1; HuffNode[i].lchild=-1; HuffNode[i].rchild=-1; } for(i=0;inum-1;i++) { min1=min2=MAXVALUE; x1=x2=0; for(j=0;jnum+i;j++)//选取最小x1和次小x2的两权值 { if(HuffNode[j].parent==-1&&HuffNode[j].weightnum+i;//修改亲人结点位置 HuffNode[x2].parent=total->num+i; HuffNode[total->num+i].weight=HuffNode[x1].weight+HuffNode[x2].weight; HuffNode[total->num+i].lchild=x1;//左孩子比右孩子权值小 HuffNode[total->num+i].rchild=x2; }}void HaffmanCode(HNodetype HuffNode[],HCodetype HuffCode[],Total *total) /*** haffman to code (0,10,110,) 得到每个不同字符(叶子)的编码, 存贮在数组HuffCode【】中,bit[] store the char,start store the loction **/{ int i,j,c,p; HCodetype cd; for(i=0;inum;i++)//建立叶子结点个数的编码 { cd.start=total->num-1;//起始位初始化 p=HuffNode[i].parent; c=i; while(p!=-1)//从叶结点向上爬直到到达根结点 { if(HuffNode[p].lchild==c)//左分支则为0 cd.bit[cd.start]=0; else cd.bit[cd.start]=1;//右分支则为1 cd.start--;//起始位向前移动 c=p; p=HuffNode[p].parent; } for(j=cd.start+1;jnum;j++)//保存求出的每个叶结点编码和起始位 HuffCode[i].bit[j]=cd.bit[j]; HuffCode[i].start=cd.start; }}void writing_HCode(HNodetype HuffNode[],HCodetype HuffCode[],Total *total) /** HuffNode[]to input the leaf HuffCode[]to input the code all is to the a_test2.txt ,save the code **/{ /*打开HCode文件,失败则结束。将信息写进文件*/ int i,j; FILE *fp2=NULL; if((fp2 = fopen("a_test2.txt","at"))==NULL) { printf("can't open the file\n"); exit(0); } for(i=0;inum;i++) {fprintf(fp2,"%d ",HuffNode[i].data); printf(" "); for(j=HuffCode[i].start+1;jnum;j++) fprintf(fp2,"%d ",HuffCode[i].bit[j]); } printf("编码规则写进文件成功!\n"); i=fclose(fp2); if(i==0) printf("文件关闭成功!\n");else printf("文件关闭失败!\n"); }void lock(Message *message,HNodetype HuffNode[],HCodetype HuffCode[],Total *total,Locking *locking)/***对messag操作,对所有字符加密,结果存贮在数组locked[]中,locking 记录已经加密后的密文**/{ int i,j,m; for(i=0;inum;i++)//把相同的不同的字符全部 遍历 { if(message->mes[i]==' ')//碰到空格则以-1形式保存进locked数组中 { locking->locked[locking->num]=-1; locking->num++; } else for(j=0;jnum;j++)//从total中找到对应的字符 { if(HuffNode[j].data==message->mes[i]) //找到在HuffNode 中对应字符,找到下标j // 在HuffCode for(m=HuffCode[j].start+1;mnum;m++)///////// ! { locking->locked[locking->num]=HuffCode[j].bit[m];//加密 locking->num++; } } }}void writing_lock(Locking *locking) /* 将密文写到a_test3.txt */{ int i; FILE *fp3=NULL; if((fp3= fopen("a_test3.txt","at"))==NULL) { printf("can't open the file\n"); exit(0); } for(i=0;inum;i++) { if(locking->locked[i]==-1) printf(" "); else fprintf(fp3,"%d ",locking->locked[i]); } printf("已编码信息写进文件成功!\n"); i=fclose(fp3); if(i==0) printf("文件关闭成功!\n");else printf("文件关闭失败!\n");}void writing_translate(Locking *locking,HCodetype HuffCode[],HNodetype HuffNode[],Total *total) /** 密文翻译成明文,然后存到文件 a_test4.txt **/{int i,j,mark[100],start[100],min,max; FILE *fp4=NULL; if((fp4 = fopen("a_test4.txt","at"))==NULL) { printf("can't open the file\n"); exit(0); } for(i=0;inum;i++)//start数组初始化 { start[i]=HuffCode[i].start+1;//。。。。 } for(i=0;inum;i++)//mark数组初始化 { mark[i]=1; } min=0;for(max=0;maxnum;max++)//写文件 { if(locking->locked[max]==-1)//碰到空格信息则直接输出空格 { printf(" ");//把空格写到文件 min++; } else { for(i=min;i<=max;i++)//查找从min开始到max的编码对应的信息 { for(j=0;jnum;j++) { if(start[j] == total->num+1) mark[j]=0; //对应编码比所给编码短则不在比较 if(mark[j]==1&&locking->locked[i]==HuffCode[j].bit[start[j]]) start[j]++; else mark[j]=0; } } for(i=0;inum;i++)//找到对应信息,则写进文件 { if(mark[i]==1&&start[i]==total->num) { fprintf(fp4,"%d ",HuffNode[i].data);//写到文件outfile break; } } if(i!=total->num) min=max+1; for(i=0;inum;i++)//start数组初始化 { start[i]=HuffCode[i].start+1; } for(i=0;inum;i++)//mark数组初始化 { mark[i]=1; } } } printf("文件写入成功!\n"); i=fclose(fp4); if(i==0) printf("文件关闭成功!\n");else printf("文件关闭失败!\n");}void first_function(HNodetype HuffNode[],HCodetype HuffCode[],Total *total,Message *message){ total_message(message,total);//统计信息中各字符的出现次数 HaffmanTree(total,HuffNode);//构建哈夫曼树 HaffmanCode(HuffNode,HuffCode,total);//建立哈夫曼编码 }

霍夫变换检测圆论文

专业英语呀,先得说说是哪个专业的,不然专业名词翻译不出来。

对于圆检测,许多研究人员已经运用参数分解和/或圆的一些几何性质,搞出了霍夫变换的变体以减少计算的复杂性。Yuen等人在1990年的论文中已经对圆的识别的集中霍夫变换的技术进行了比较研究。以参数分解为基础的方法通常是先检测圆心,然后确定半径。这样做的特点的其中之一是圆上一点的方向向量经过圆心(Davies, 1987a; Illingworth and Kittler, 1987). 叶等人在1992年的论文中用到一个性质:圆上两点的切线平行,那么这两点就是圆的直径的两个端点。上述方法需要有对干扰因素十分敏感的边缘等级线的梯度的信息(Davies, 1987b). 干扰因素对边的方向的作用通常要比对边的位置的作用大。不使用边缘方向信息的几种途径包括:陈和Siu(1990)提出了基于水平和垂直弦的中分线的快速椭圆检测法。同样,Ho和陈(1995)提出了一种使用全局几何对称性的快速检测圆的算法,通过水平和垂直对称轴计算出圆心。Sheu等人在1997年的论文中,在整个过程中运用了对称轴的信息来计算所有五个参数。 Goneid等人在1997年的论文中使用一维数组创建了弦的中分线法。Davies(1999)研究了一个用于椭圆的快速精确定位的简单的弦的中垂线法。 Ioannou 等人(1999年)的方法是基于垂径定理。Lei和王(1999)发现了对称轴,继而发现了几对交点是圆心的可选值的正交轴。其缺点是图像中的直线会让对称轴的检测更复杂。

霍夫变换(Hough Transform)是图像处理领域中,从图像中识别几何形状的基本方法之一。主要识别具有某些相同特征的几何形状,例如直线,圆形,本篇博客的目标就是从黑白图像中识别出直线。

翻阅霍夫直线变换的原理时候,橡皮擦觉得原理部分需要先略过,否则很容易在这个地方陷进去,但是问题来了,这个原理略过了,直接应用函数,里面有些参数竟然看不懂。例如极坐标,角度扫描范围,这种函数就属于绕不过去的知识点了,所以本文转移方向,死磕原理,下面的博文将语无伦次的为你展示如何学习原理知识。

因为数学知识的贫乏,所以在学习阶段会涉及到很多基础概念的学习,一起来吧。

首先找到相对官方的资料,打开该 地址

下面是一个数学小白对原理的学习经验。

教材说:众所周知,一条直线在图像二维空间可由两个变量表示。

抱歉,小白还真不知道……即使学习过,这些年也早已经还给老师了。

一开始难道要学习笛卡尔坐标系,不,你低估小白的能力了,我第一个查询的是 θ 读作 西塔 ,是一个希腊字母。

什么是笛卡尔坐标系?

这个比较简单,直角坐标系。

斜率和截距

斜率,亦称“角系数”,表示一条直线相对于横坐标轴的倾斜程度。

一条直线与某平面直角坐标系横坐标轴正半轴方向的夹角的正切值即该直线相对于该坐标系的斜率。

如果直线与 x 轴互相垂直,直角的正切直无穷大,故此直线不存在斜率。 对于一次函数 y=kx+b , k 就是该函数图像的斜率。

在学习的时候,也学到如下内容:

截距:对 x 的截距就是 y=0 时, x 的值,对 y 的截距就是 x=0 时, y 的值, 截距就是直线与坐标轴的交点的横(纵)坐标。 x 截距为 a , y 截距 b ,截距式就是: x/a+y/b=1(a≠0且b≠0) 。

斜率:对于任意函数上任意一点,其斜率等于其切线与 x 轴正方向所成的角,即 k=tanα 。 ax+by+c=0中,k=-a/b 。

什么是极坐标系?

关于极坐标系,打开 百度百科 学习一下即可。

重点学到下面这个结论就行:

找资料的时候,发现一个解释的比较清楚的 博客 ,后续可以继续学习使用。

继续阅读资料,看到如下所示的图,这个图也出现在了很多解释原理的博客里面,但是图下面写了一句话

在这里直接蒙掉了,怎么就表示成极坐标系了?上面这个公式依旧是笛卡尔坐标系表示直线的方式呀,只是把 k 和 b 的值给替换掉了。

为何是这样的,具体原因可以参照下图。

chou 图

继续寻找关于霍夫变换的资料,找到一个新的概念 霍夫空间 。

在笛卡尔坐标系中,一条直线可以用公式 表示,其中 k 和 b 是参数,表示的是斜率和截距。

接下来将方程改写为 ,这时就建立了一个基于 k - b 的笛卡尔坐标系。

此时这个新的方程在 k - b 坐标系也有一个新的直线。

你可以在纸上画出这两个方程对应的线和点,如下图所示即可。

chou 图

新的 k - b 坐标系就叫做霍夫空间,这时得到一个结论,图像空间 x - y 中的点 对应了 霍夫空间 k - b 中的一条直线 ,即图像空间的点与霍夫空间的直线发生了对应关系。

如果在图像空间 x - y 中在增加一个点 ,那相应的该点在霍夫空间也会产生相同的点与线的对应关系,并且 A 点与 B 点产生的直线会在霍夫空间相交于一个点。而这个点的坐标值 就是直线 AB 的参数。

如果到这里你掌握了,这个性质就为我们解决直线检测提供了方法,只需要把图像空间的直线对应到霍夫空间的点,然后统计交点就可以达到目的,例如图像空间中有 3 条直线,那对应到霍夫空间就会有 3 个峰值点。

遍历图像空间中的所有点,将点转换到霍夫空间,形成大量直线,然后统计出直线交会的点,每个点的坐标都是图像空间直线方程参数,这时就能得到图像空间的直线了。

上述的内容没有问题,但是存在一种情况是,当直线趋近于垂直时,斜率 k 会趋近于无穷大,这时就没有办法转换了,解决办法是使用法线来表示直线。

上文提及的斜截式如下:

通过第二个公式,可以得到下述公式:

此时,我们可以带入一些数值进行转换。

图像空间有如下的几个点:

转换后的函数,都可以在霍夫空间 θ - ρ (横坐标是 θ ,纵坐标是 ρ )进行表示。

原理这时就比较清晰了:

除了一些数学知识以外,经典的博客我们也有必要记录一下,方便后面学习的时候,进行复盘。

本部分用于记录本文中提及的相关数学原理,后续还要逐步埋坑。

今天涉及了一点点数学知识,能力限制,大家一起学习,有错误的地方,可以在评论区指出,不胜感激。

希望今天的 1 个小时(今天内容有点多,不一定可以看完),你有所收获,我们下篇博客见~

相关阅读

技术专栏

逗趣程序员

虽然提出的方法的比较与其他圈子探知方法的使用弦在这工作不十分地完成,我们观察了多数其他技术(即, Chan和Siu 1990年; ho和陈1995年; Sheu等, 1997年; Goneid等)半新垂直和水平的弦和需要查出对称垂直和水平的轴的直线的1997 HT (SHT)。 因此,他们不会很好工作在部分地被遮没的圈子情况下,并且花费vot的时间 我翻译机翻出来的,不知道对不对!

霍夫变换检测直线和圆的论文

虽然提出的方法的比较与其他圈子探知方法的使用弦在这工作不十分地完成,我们观察了多数其他技术(即, Chan和Siu 1990年; ho和陈1995年; Sheu等, 1997年; Goneid等)半新垂直和水平的弦和需要查出对称垂直和水平的轴的直线的1997 HT (SHT)。 因此,他们不会很好工作在部分地被遮没的圈子情况下,并且花费vot的时间 我翻译机翻出来的,不知道对不对!

对于圆检测,许多研究人员已经运用参数分解和/或圆的一些几何性质,搞出了霍夫变换的变体以减少计算的复杂性。Yuen等人在1990年的论文中已经对圆的识别的集中霍夫变换的技术进行了比较研究。以参数分解为基础的方法通常是先检测圆心,然后确定半径。这样做的特点的其中之一是圆上一点的方向向量经过圆心(Davies, 1987a; Illingworth and Kittler, 1987). 叶等人在1992年的论文中用到一个性质:圆上两点的切线平行,那么这两点就是圆的直径的两个端点。上述方法需要有对干扰因素十分敏感的边缘等级线的梯度的信息(Davies, 1987b). 干扰因素对边的方向的作用通常要比对边的位置的作用大。不使用边缘方向信息的几种途径包括:陈和Siu(1990)提出了基于水平和垂直弦的中分线的快速椭圆检测法。同样,Ho和陈(1995)提出了一种使用全局几何对称性的快速检测圆的算法,通过水平和垂直对称轴计算出圆心。Sheu等人在1997年的论文中,在整个过程中运用了对称轴的信息来计算所有五个参数。 Goneid等人在1997年的论文中使用一维数组创建了弦的中分线法。Davies(1999)研究了一个用于椭圆的快速精确定位的简单的弦的中垂线法。 Ioannou 等人(1999年)的方法是基于垂径定理。Lei和王(1999)发现了对称轴,继而发现了几对交点是圆心的可选值的正交轴。其缺点是图像中的直线会让对称轴的检测更复杂。

虽然所提方法与其它使用弦的圆检测法的对比试验本周并未彻底完成,我们仍然可以发现大部分其它方法(即Chan and Siu, 1990; Ho and Chen, 1995; Sheu et al., 1997; Goneid et al., 1997)垂直和水平弦,并且需要直线HT (SHT)来检测堆对称的横轴和竖轴。因此在部分堵塞圆中,它们的效果有限,而且voting过程和SHT峰值检测也会花费更长时间。Fig. 6(a) 显示的是一个被矩形部分堵塞的圆的实例。Fig. 6(b)显示的是所提方法的voting空间(此时s=1 and Ne=10)。它有一个与圆心对应的显著峰值。Fig. 6(c)是由水平弦的中点组成的bool图像,以找到备选对称竖轴。随机出现属于对称垂直轴的两个短线段和一个伪垂直线段要使用简单SHT检测到他们很难,而且很卡能检测不到部分堵塞圆。正好相反, the proposed method使用随机选取方向发起对部分堵塞圆的检测 (Fig. 6(d)),检查表能够避免需要额外内存和采样率来加快检测过程的三角函数的复杂计算5. 结论本文运用相互交叉的弦对,提出一个基于HT的圆形检测两步法,进而得出通过相互交叉的弦对计算圆心的方程式。根据该公式, 2D HT法首先高效而准确的找到图形中的圆心。第二步,通过半径柱状图计算出圆的半径。这种方案没有使用对噪音相对敏感的边缘方向信息。通过ACC VOTING过程中r2的正常化,阀值简单而正常。本文给出了所提计算方法的分析,并对其相对复杂性的减少进行了讨论。综合实验结果以及事实图形表明,本文所提的圆形检测法切实可行。论文太专业了,没有接触过 只能试着抛砖引玉,具体还要楼主自己斟酌希望能对楼主有所帮助(BOOL 和VOTING真的是不知怎么翻译啦)

对于圆检测,许多研究人员已经研究出使用改性羟色胺的方法分解参数和/或圆的一些几何性质,以减少复杂性。元朗等。 (1990年)已经进行了几羟色胺为基础的循环寻找技术的比较研究。参数分解为基础的方法通常是先从对检测中心的圆圈,然后确定半径。这些属性之一是正常的一个点上一圆通过圆(戴维斯,1987A的;伊林沃思和Kittler,1987)的中心通行证。业等。 (1992年)所使用的财产上的两个圆的切线平行是圆的直径的端点点。上述方法需要的边缘轮廓对噪声非常敏感(戴维斯,1987年b)梯度信息。关于边缘的方向等信息噪音é€一般大于边缘位置。有没有使用边缘方向信息的几种途径。陈和小(1990)提出了基于快速椭圆检测的水平和垂直平分弦。同样,何和陈(1995)提出了一种快速检测算法界使用一个全局的几何对称性。它计算出来的对称轴和垂直轴对称水平圆心。许等人。 (1997年),用于在整个过程中,信息对称轴计算所有五个参数。 Goneid等。 (1997年)制定的和弦二分法使用一维数组。戴维斯(1999)研究了椭圆形的快速精确定位的简单和弦二分法。约安努等人的方法。 (1999年)已在该行的财产垂直平分一圆的弦穿过其中心的基础。雷和黄(1999)检测,发现对称轴的交点的两个中心是正交轴对候选人。其缺点是图像中的直线可以使检测复杂的对称轴。

毕业论文编码与密码

毕业设计(论文)管理系统密码修改过后就进不去了。怎么办

毕业论文格式标准 1、引言 1.1 制订本标准的目的是为了统一规范我省电大本科汉语言文学类毕业论文的格式,保证毕业论文的质量。 1.2 毕业论文应采用最新颁布的汉语简化文字、符合《出版物汉字使用管理规定》,由作者在计算机上输入、编排与打印完成。论文主体部分字数6000-8000。 1.3 毕业论文作者应在选题前后阅读大量有关文献,文献阅读量不少于10篇。并将其列入参考文献表,并在正文中引用内容处注明参考文献编号(按出现先后顺序编)。 2、编写要求 2.1 页面要求:毕业论文须用A4(210×297)标准、70克以上白纸,一律采用单面打印;毕业论文页边距按以下标准设置:上边距为30mm,下边距为25mm,左边距和右边距为25mm;装订线为10mm,页眉16mm,页脚15mm。 2.2 页眉:页眉从摘要页开始到论文最后一页,均需设置。页眉内容:浙江广播电视大学汉语言文学类本科毕业论文,居中,打印字号为5号宋体,页眉之下有一条下划线。 2.3 页脚:从论文主体部分(引言或绪论)开始,用阿拉伯数字连续编页,页码编写方法为:第×页共×页,居中,打印字号为小五号宋体。 2.4 前置部分从中文题名页起单独编页。 2.5 字体与间距:毕业论文字体为小四号宋体,字间距设置为标准字间距,行间距设置为固定值20磅。 3、编写格式 3.1 毕业论文章、节的编号:按阿拉伯数字分级编号。 3.2 毕业论文的构成(按毕业论文中先后顺序排列): 前置部分: 封面 题名页 中文摘要,关键词 英文摘要,关键词(申请学位者必须有) 目次页(必要时) 主体部分: 引言(或绪论) 正文 结论 致谢(必要时) 参考文献 附录(必要时) 4、前置部分 4.1 封面:封面格式按浙江广播电视大学汉语言文学本科毕业论文封面统一格式要求。封面内容各项必须如实填写完整。 4.2 题名:题名是以最恰当、最简明的词语反映毕业论文中最重要的特定内容的逻辑组合;题名所用每一词必须考虑到有助于选定关键词和编制题录、索引等二次文献可以提供检索的特定实用信息;题名一般不宜超过30字。题名应该避免使用不常见的缩写词、首字缩写字、字符、代号和公式等;题名语意未尽,可用副标题补充说明论文中的特定内容。 题名页置于封面后,集资列示如下内容: 中央广播电视大学“人才培养模式改革和开放教育试点”汉语言文学专业本科毕业论文(小二号黑体,居中) 论文题名(二号黑体,居中) 学生姓名(××××××××三号黑体) 学 号(××××××××三号黑体) 指导教师(××××××××三号黑体) 专 业(××××××××三号黑体) 年 级(××××××××三号黑体) (××××××××三号黑体)分校(学院)(××××××××三号黑体)工作站 4.3 摘要:摘要是论文内容不加注释和评论的简短陈述,应以第三人称陈述。它应具有独立性和自含性,即不阅读论文的全文,就能获得必要的信息。摘要的内容应包含与论文同等量的主要信息,供读者确定有无必要阅读全文,也供文摘等二次文献采用。 摘要一般应说明研究工作目的、实验研究方法、结果和最终结论等,而重要是结果和结论。摘要中一般不用图、表、公式等,不用非公知公用的符号、术语和非法定的计量单位。 摘要页置于题名页后。 中文摘要一般为300汉字左右,用5号宋体,摘要应包括关键词。 英文摘要是中文摘要的英文译文,英文摘要页置于中文摘要页之后。申请学位者必须有,不申请学位者可不使用英文摘要。 4.4 关键词:关键词是为了文献标引工作从论文中选取出来用以表示全文主题内容信息款目的单词或术语。一般每篇论文应选取3-5个词作为关键词。关键词用逗号分隔,最后一个词后不打标点符号。以显著的字符排在同种语言摘要的下方。如有可能,尽量用《汉语主题词表》等词表提供的规范词。 4.5 目次页:目次页由论文的章、节、条、附录、题录等的序号、名称和页码组成,另起一页排在摘要页之后。章、节、小节分别以1.1.1、1.1.2等数字依次标出,也可不使用目次页。 其实 格式不重要,最重要的内容!!!!!!!!

以北京服装学院为例,毕业论文(设计)管理系统的密码忘记了可联系所在学院教学秘书老师

一般通过下面三种方法都能找回密码:

1、2016级学生登录系统账号密码均为学号,登录以后及时更改并牢记。

2、修改后忘记密码可通过邮箱,确保之前填写邮箱信息无误,否则找回失败找回。

3、如仍不能解决(含其余年级学生),请联系所在学院教学秘书老师。

扩展资料:

教师如果忘记密码可通过下列方法找回:

1、通过邮箱找回。

2、联系教学秘书老师。

疫情期间,如需修改毕业设计(论文)题目,指导教师需向教研室报备,教研室根据实际,审核确认是否允许其修改题目。

修改题目之后,教师需重新下发任务书,如开题报告已定稿,则需教研室主任退回,学生重新提交。

参考资料来源:北京服装学院-毕业设计(论文)系统使用常见问题解答

一般说来,各个学校对于论文格式的要求是不一样的,而且一般也会把论文格式以书面的格式发给学生,你没有拿到论文格式的书面要求么?没有的话,应该打电话给你的论文指导老师询问一下。 摘录了一些基本要求,供你参考,希望在格式方面对你有帮助。 毕业论文格式标准 1、引言 1.1 制订本标准的目的是为了统一规范我省电大本科汉语言文学类毕业论文的格式,保证毕业论文的质量。 1.2 毕业论文应采用最新颁布的汉语简化文字、符合《出版物汉字使用管理规定》,由作者在计算机上输入、编排与打印完成。论文主体部分字数6000-8000。 1.3 毕业论文作者应在选题前后阅读大量有关文献,文献阅读量不少于10篇。并将其列入参考文献表,并在正文中引用内容处注明参考文献编号(按出现先后顺序编)。 2、编写要求 2.1 页面要求:毕业论文须用A4(210×297)标准、70克以上白纸,一律采用单面打印;毕业论文页边距按以下标准设置:上边距为30mm,下边距为25mm,左边距和右边距为25mm;装订线为10mm,页眉16mm,页脚15mm。 2.2 页眉:页眉从摘要页开始到论文最后一页,均需设置。页眉内容:浙江广播电视大学汉语言文学类本科毕业论文,居中,打印字号为5号宋体,页眉之下有一条下划线。 2.3 页脚:从论文主体部分(引言或绪论)开始,用阿拉伯数字连续编页,页码编写方法为:第×页共×页,居中,打印字号为小五号宋体。 2.4 前置部分从中文题名页起单独编页。 2.5 字体与间距:毕业论文字体为小四号宋体,字间距设置为标准字间距,行间距设置为固定值20磅。 3、编写格式 3.1 毕业论文章、节的编号:按阿拉伯数字分级编号。 3.2 毕业论文的构成(按毕业论文中先后顺序排列): 前置部分: 封面 题名页 中文摘要,关键词 英文摘要,关键词(申请学位者必须有) 目次页(必要时) 主体部分: 引言(或绪论) 正文 结论 致谢(必要时) 参考文献 附录(必要时) 4、前置部分 4.1 封面:封面格式按浙江广播电视大学汉语言文学本科毕业论文封面统一格式要求。封面内容各项必须如实填写完整。 4.2 题名:题名是以最恰当、最简明的词语反映毕业论文中最重要的特定内容的逻辑组合;题名所用每一词必须考虑到有助于选定关键词和编制题录、索引等二次文献可以提供检索的特定实用信息;题名一般不宜超过30字。题名应该避免使用不常见的缩写词、首字缩写字、字符、代号和公式等;题名语意未尽,可用副标题补充说明论文中的特定内容。 题名页置于封面后,集资列示如下内容: 中央广播电视大学“人才培养模式改革和开放教育试点”汉语言文学专业本科毕业论文(小二号黑体,居中) 论文题名(二号黑体,居中) 学生姓名(××××××××三号黑体) 学 号(××××××××三号黑体) 指导教师(××××××××三号黑体) 专 业(××××××××三号黑体) 年 级(××××××××三号黑体) (××××××××三号黑体)分校(学院)(××××××××三号黑体)工作站 4.3 摘要:摘要是论文内容不加注释和评论的简短陈述,应以第三人称陈述。它应具有独立性和自含性,即不阅读论文的全文,就能获得必要的信息。摘要的内容应包含与论文同等量的主要信息,供读者确定有无必要阅读全文,也供文摘等二次文献采用。 摘要一般应说明研究工作目的、实验研究方法、结果和最终结论等,而重要是结果和结论。摘要中一般不用图、表、公式等,不用非公知公用的符号、术语和非法定的计量单位。 摘要页置于题名页后。 中文摘要一般为300汉字左右,用5号宋体,摘要应包括关键词。 英文摘要是中文摘要的英文译文,英文摘要页置于中文摘要页之后。申请学位者必须有,不申请学位者可不使用英文摘要。 4.4 关键词:关键词是为了文献标引工作从论文中选取出来用以表示全文主题内容信息款目的单词或术语。一般每篇论文应选取3-5个词作为关键词。关键词用逗号分隔,最后一个词后不打标点符号。以显著的字符排在同种语言摘要的下方。如有可能,尽量用《汉语主题词表》等词表提供的规范词。 4.5 目次页:目次页由论文的章、节、条、附录、题录等的序号、名称和页码组成,另起一页排在摘要页之后。章、节、小节分别以1.1.1、1.1.2等数字依次标出,也可不使用目次页。 5、主体部分 5.1 格式:主体部分的编写格式由引言(绪论)开始,以结论结束。主体部分必须另页开始。 5.2 序号 毕业论文各章应有序号,序号用阿拉伯数字编码,层次格式为: 1、×××××××××××××××(三号黑体、居中) ×××××××××××××××××××××××××××××××××(内容用小四号宋体) 1.1、×××××××××××××(小三号黑体、居左) ×××××××××××××××××××××××××××××××××(内容用小四号宋体) 1.1.1、×××××××××××(四号黑体,居左) ×××××××××××××××××××××××××××××××××(内容用小四号宋体) ①×××××××××××××××××(用于内容同样大小的宋体) 1)×××××××××××××××××(用于内容同样大小的宋体) a、××××××××××××××××(用于内容同样大小的宋体) 5.3 论文中的图、表、公式、算式等,一律用阿拉伯数字分别依序连编号编排序号。序号分章依序编码,其标注形式应便于互相区别,可分别为:图2.1、表3.2(式3.5)等。 5.4 注:论文中对某一问题、概念、观点等的简单解释、说明、评价、提示等,如不宜在正文中出现,可采用加注的形式。 注应编排序号,注的序号以同一页内出现的先后次序单独排序,用①、②、③……依次标示在需加注处,以上标形式表示。 注的说明文字以序号开头。注的具体说明文字列于同一页内的下端,与正文之间用一左对齐、占页面四分之一宽长度的横线分隔。 论文中以任何形式引用的资料,均须标出引用出处。 5.5 结论:结论是最终的、总体的结论,不是正文中各段的小结的简单重复,结论应该准确、完整、明确、精炼。 5.6 参考文献:参考文献应是学位论文作者亲自考察过的对毕业论文有参考价值的文献。参考文献应具有权威性,要注意引用最新的文献。 参考文献以文献在整个论文中出现的次序用[1]、[2]、[3]、[4]……形式统一排序、依次列出。 参考文献的表示格式为: 著作:[序号]作者、译者、书名、版本、出版地、出版社、出版时间、引用部分起止页。 期刊:[序号]作者、译者、文章题目、期刊名、年份、卷号(期数)、引用部分起止页。 会议论文集:[序号]作者、译者、文章名、文集名、会址、开会年、出版地、出版者、出版时间、引用部分起止页。 如何写论文 写下自己的想法是完善它的好方法。你可能发现自己的想法在纸上会变成一团糟。 写作是很痛苦的事情,但是当你越来越熟悉它的时候,就会很快了。如果你把它当作一种艺术,你就会在写作的过程中体会到无穷的乐趣。 你也会遇到和其他作者一样的滞碍。这有很多原因,而且不一定能顺利解决。追求完美是一个原因。 记住:写作是一个不断完善的过程。当你发现所写的不是你开始想写的,写下粗稿,以后再修补。写粗稿可以理出自己的思想、渐渐进入状态。如果写不出全部内容,就写纲要,在容易写具体的内容时再补充。如果写不出来,就把想到的东西全部写出来,即使你觉得是垃圾。当你写出足够的内容,再编辑它们,转化成有意义的东西。另一个原因是想把所有的东西都有序的写出来(in order)。你可能要从正文写起,最后在你知道你写的到底是什么的时候再写简介。写作是很痛苦的事情,有时候一天只能写上一页。追求完美也可能导致对已经完美的文章无休止的修改润饰。这不过是浪费时间罢了。把写作当作和人说话就行了。 写信也是练习的好方法。大多的文章也会因为风格很想给朋友的信件而易读(can be improved)。写日记也是很好的锻炼。这两种方法还有其他的好处。 无休止的修改格式而不是内容也是常犯的错误。要避免这种情况。 LaTex(附:CTex)是一个很好的工具,但是它自己有很多自定义的宏定义。你也可以利用别人类似的代码,许多站点(包括MIT)都维护有扩展库。 清楚自己想说什么。这是写清楚要的最难最重要的因素。如果你写出笨拙的东西,不断的修补,就表明不清楚自己想说什么。一旦真正想说了,就说吧。 从每一段到整个文章都应该把最引人入胜的东西放在前面。让读者容易看到你写的东西(Make it easy for the reader to find out what you've done)。注意处理摘要(carefully craft the abstract)。确定(be sure)说出了你的好思想是什么。确定你自己知道这个思想是什么,然后想想怎么用几句话写出来。大篇的摘要说明文章是写什么的,说明有一个想法但没有说到底是什么。 不要大肆夸耀你自己做的事情。 你经常会发现自己写的句子或者段落不好,但不知道怎么修补。这是因为你自己进入了死胡同。你必须回去重写。这会随着你的练习减少。 确信你的文章真的有思想(ideas)。要说清楚为什么,不仅仅是怎么样。 为人而写,不要为了机器而写。不仅仅需要正确,还需要易读。读者应该只做最明显简单的推理。 完成文章以后,删除第一段或者前面的几句话。你会发现这些话其实对主旨没有影响。 如果你在所有的工作做完以后才开始写,就会失去很多好处(benefit)。一旦开始研究工作,好的方法是养成写不正式文章的习惯,每隔几个月(every few months)记下最新的和你刚学的东西。从你的研究笔记开始比较好。用两天时间来写,如果太长的话就说明你太追求完美了。这不是要进行判断的东西,而是与朋友共享的。在封面上说明“草稿”(DRAFT-NOT FOR CITATION)。拷贝很多份,给那些感兴趣的人看,包括导师。这种做法对以后写正式的论文很有好处。 得到反馈: 如果你加入私人文章交流网(Secret Paper Passing Network),会收到很多别人的文章,他们请你评论。知道别人对论文的意见很重要。你给别人帮助,别人会在你需要的时候帮助你。而且,自己也能提高。为文章写有用的评论是一门艺术。你应当读上两遍,第一遍了解其思想(IDEAS),第二遍看表达。 当然也可以把自己的文章交给别人评价,要学会吸取有建设性的建议,忽略破坏性(destructive)和无意义的建议。为了得到建议,你要写清楚自己的观点,写你所作的事情,即使你没准备写一个没有完整的期刊或者会议文章,然后交给别人看。即使是将要发表的文章,也应该写清楚,这样可以增加得到建议的机会。 以简要的形式降序组织评论(建议)对你和你所评论的人都有用:最上面内容相关,中间是风格和表述,最后是语法和文法。 -------------------------------------------------------------------------------- 写作的过程: 读一些最新的论文,尤其是那些发表了的。学习它们的内容和表达,注意它们里面的-进一步工作。(future work) 写出让别人可以理解的形式是很慢的过程。下面是经常不想遇到的原因: 为了写好文章,开始的一两个草稿常常必须被扔掉。 在几年的研究工作中,有很多记号会改很多次。有些以前重要的结果可能现在一点用也没有。重新组织过去的东西,这可能需要很长的时间。 即使你有很多讨论部分结果的的技术报告、会议论文或者期刊文章,毕业论文的表述也应当一致。研究论文是给有相关背景的专家看的,除了你的工作是怎么适合方案以外,必须有完整的 ======================================= 1、结构要求 毕业设计(论文)一般由11部分组成,依次为:(1)封面(中英文),(2)任务书(中文),(3)开题报告(中文),(4)中英文摘要及关键词,(5)目录(英文),(6)正文(英文),(7)参考文献(中英文),(8) 附录(英文),(9)致谢(英文),(10)文献综述(中文),(11)外文文献翻译(中英文)。 2、各部分具体要求如下 2.1封面 采用学校教务处统一印制的封面。 2.2任务书 包括:设计(论文)题目、论文的原始数据、设计(论文)内容和要求、主要参考资料、设计(论文)计划进度表等。其中,“检查人签名”一栏和“指导教师批准日期”一栏由教师填写,其余均要求打印。论文题目分别用英文,中文写出。要求醒目,简短,符合论文内容,严格控制在25字(含25)以内,用三号字、加黑、英文用Times New Roman,中文用宋体;任务书封面除题目外,均用三号字、加黑、宋体字;其它页用小四号宋体字打印;日期采用阿拉伯数字。 2.3开题报告 开题报告不少于1500字。要求如下: 课题名称、院系名称、专业名称、学生姓名、指导教师都用中文,四号宋体。 正文用中文撰写,内容包括:课题的意义,所属领域的发展状况,本课题的研究内容、研究方法、研究手段和研究步骤以及参考书目等。采用小四号宋体。 2.4中英文摘要及关键词 中文,英文摘要一般在400字以内,但不得少于300字。摘要应简要介绍研究的课题内容、主要结论及创新之处,语言力求精炼。中英文摘要均要有关键词,一般为3—5个。字体为小四号宋体,各关键词之间要有1个空格及分号。英文摘要应与中文摘要相对应,字体为四号小Times New Roman。详见模板一、二。 2.5 目录 “Contents”用三号字、加黑、Times New Roman、居中书写,目录的各层次题目应简明扼要,其中第一层次题目采用小三号Times New Roman加黑,第二层次题目采用四号Times New Roman,第三层次题目采用小四号Times New Roman。题目和页码间用“……”相连,并标明页码。详见模板三。 2.6 正文 正文一般不少于8000字。正文内容序号采用如下格式: 1(空一格) ☆☆☆☆☆(小三号、Times New Roman,加黑,左顶格) 1.1(空一格)☆☆☆(四号、Times New Roman,加黑,左顶格) 1.1.1(空一格) ☆☆☆(小四号、Times New Roman,加黑,左顶格) 正文(小四号、Times New Roman,两边对齐) 详见模板四。 2.7 参考文献 参考文献中只列出作者直接阅读过或在正文中被引用过的文献资料。中外文分别排列,中文在前,外文在后。中文按第一作者姓氏的汉语拼音顺序排列,在姓名后面须标注拼音并加上逗号,外文按姓氏的字母顺序排列。参考文献要另起一页,一律放在正文后,不得放在各章之后。 根据《中国学术期刊检索与评价数据规范》的要求书写参考文献,并按顺序编码制,作者只写到第三位,余者写“等”,英文作者超过3人写“et al”(斜体)。 文后参考文献表的编排格式如下: a.专著、论文集、学位论文、报告 [序号]作者.文献题名[文献类型标识].出版地:出版者,出版年.起止页码(任选). b.期刊丈章 [序号]作者.文献题名[J]。刊名,年,卷号(期号):起止页码. c.论文集中的析出文献 [序号]写出文献作者。写出文献题名[A1.原文献作者(任选).原文献题名[C). 出版地:出版者,出版年。写出文献起止页码. D.报纸文章 [序号]主要责任者.文献题名[N]。报纸名,出版日期(版次). e.国际、国家标准 [序号]标准编号,标准名称[S]. f.专利 [序号]专利所有者.专利题名[P].专利国别:专利号,出版日期。 g.电子文献 [序号]主要责任者.电子文献题名[电子文献及载体类型标识].电子文献的出处或可获得地址,发表或更新日期引用日期(任选), h.各种未定义类型的文献 [序号]主要责任者.文献题名[Z).出版地:出版者,出版年。 参考文献类型及其标识: 参考文献类型 专著 论文集 报纸 文章 期刊 文章 学位 论文 报告 标准 专利 文献类型标识 M C N J D R S P 电子参考文献类型 数据库 计算机程序 电子公告 电子文献类型标识 DB CP EB 详见模板五。 2.8 致谢 另起一页。“Acknowledgements”采用Times New Roman四号字、加黑、居中。内容限1页,采用小四号宋体。内容不宜过于琐碎,简明扼要即可。 2. 9 附录 另起一页。附录的有无根据说明书(设计)情况而定。内容一般包括在正文内不便列出的冗长公式推导、符号说明(含缩写)、计算机程序等。“Appendix” Times New Roman四号字、加黑、居中。 2.10 文献综述 另起一页。用中文书写,资料避免随意选取,内容必须与课题(或专业内容)有联系,紧扣论题。打印采用小四号宋体字。 2.11 外文文献翻译 另起一页。“外文文献翻译”六个字用宋体四号字、加黑、居中。外文资料避免随意选取,内容必须与课题(或专业内容)有联系,严禁抄袭有中文译本的外文资料。英文原文在前,中文译文在后。内容不可少于3000汉字。打印采用小四号宋体或Times New Roman字体。 3 几点具体要求 3.1语言表述 3.1.1 要做到数据可靠、推理严谨、立论确正。论述必须简明扼要、重点突出,对同行专业人员已熟知的常识性内容,尽量减少叙述。 3.1.2 论文中如出现一些非通用性的新名词、术语或概念,需做出解释。 3.2 标题和层次 标题要重点突出,简明扼要,层次要清楚。 3.3 页眉和页码 3.3.1 页眉从正文开始,一律设为“武汉科技学院2006届毕业设计(论文)”,采用宋体,五号字、居中书写。 3.3.2 页码从正文开始按阿拉伯数字(宋体小五号)连续编排,居中书写。 3.4 图、表、公式 图: a.图中术语、符号、单位等应同文字表述一致。 b.图序及图名居中置于图的下方,用五号字Times New Roman。 表: a.表中参数应标明量和单位的符号。 b.表序及表名置于表的上方。 c.表序、表名和表内内容一律用五号字Times New Roman. 公式:编号用括号括起来写在右边行末,其间不加虚线,公式用五号字Times New Roman。 图、表、公式等与正文之间要有一行的间距;文中的图、表、附注、公式一律采用阿拉伯数字分章(或连续)编号。如:图2-5,表3-2,公式(5-1)等。若图或表中有附注,采用英文小写字母顺序编号。 图纸要求:图面整洁,布局合理,线条粗细均匀,圆弧连接光滑,尺寸标注规范,文字注释必须使用工程字书写。提倡学生使用计算机绘图。 曲线图表要求:所有曲线、图表、线路图、流程图、程序框图、示意图等不准徒手画,必须按国家规定标准或工程要求采用计算机或手工绘制。 3.5 注释 注释是对论文正文中某一特定内容的进一步解释或补充说明。按①、②、③、④……⑩形式,在文中需要注释处的右上角标出,注释一般排在该页页脚,左对齐。采用小四号Times New Roman。 3.6引文格式 直接引用内容超过40个字, 需另起一段,前后与正文各空一行,左右各缩进4个字符,字号用Times New Roman五号字。另外,直接引用和间接引用均需要注明出处,采用脚注方式,按1、2、3、4……10的形式,在文中需要注释处的右上角标出,注释一般排在该页页脚,左对齐。脚注内容包括:被引述作者的姓氏、书刊出版的年代、被引述的页码,中间分别用逗号和冒号连接(如:Olsen, 1992:125-163)。 3.7 打印规格 除封面、任务书教师的签字部分用笔写以及外文资料可以复印,其它文字统一使用Windows平台下的Word字处理软件打印,一律采用A4纸张,页边距一律采取默认形式(上下2.54cm, 左右3.17cm, 页眉1.5cm, 页脚1.75cm),行间距取多倍行距(设置值为1.25);字符间距为默认值(缩放100%,间距:标准)。 3.8 印刷 论文选择单面印刷

  • 索引序列
  • 霍夫曼编码毕业论文
  • 哈夫曼编码译码毕业论文
  • 霍夫变换检测圆论文
  • 霍夫变换检测直线和圆的论文
  • 毕业论文编码与密码
  • 返回顶部