申2320
重庆工商大学实验实习中心,重庆400033 ; 重庆工商大学图书馆,重庆400033)摘 要:介绍了MATLAB 图像处理工具箱中的函数,给出了图像处理与分析的技术实现,如用直方图均衡进行图像增强,通过形态学方法进行图像特征抽取与分析,借助于分水岭图像分割实现目标检测等。关键词:灰度图像;形态学变换;标记;分割;特征抽取中图分类号:TP 4 文献标识码:AMATLAB 1(R 1) 是一套功能十分强大的工程计算及数据分析软件,其应用范围涵盖了数学、工业技术、电子科学、医疗卫生、建筑、金融、数字图像处理等各个领域。许多工程师和研究人员发现,MATLAB能迅速测试其构思,综合评测系统性能,并能借此快速设计出更多的解决方案,达到更高的技术要求。MATLAB 的图像处理工具箱,功能十分强大,支持的图像文件格式丰富,如3 BMP , 3 JPG, 3 JPEG,3 GIF , 3 TIF , 3 TIFF , 3 PNG, 3 PCX , 3 XWD , 3 HDF , 3 ICO , 3 CUR 等。利用MATLAB 所提理函数,并给出用MATLAB 实现图像处理与分析的应用技术实例。1 MATLAB 的图像处理工具概述MATLAB 1(R 1) 提供了20 类图像处理函数,涵盖了图像处理的包括近期研究成果在内的几乎所有的技术方法,是学习和研究图像处理的人员难得的宝贵资料和加工工具箱。这些函数按其功能可分为:图像显示;图像文件I/ O ;图像算术运算;几何变换;图像登记;像素值与统计;图像分析;图像增强;线性滤波;线性二元滤波设计;图像去模糊;图像变换;邻域与块处理; 灰度与二值图像的形态学运算;结构元素创建与处理;基于边缘的处理; 色彩映射表操作;色彩空间变换;图像类型与类型转换。2 应用MATLAB 工具箱进行图像分析处理 1 用直方图均衡实现图像增强当图像对比度较低,即灰度直方图分布区间较窄时,可用直方图均衡实现灰度分布区间展宽而达到图像增强的效果。下面是实现的源程序及相关功能的注解:%源程序: mX 收稿日期:2003 - 02 - 27 ;修回日期:2003 - 03 - 30作者简介:何希平(1968 - ) ,男,四川人,博士生,重庆工商大学副教授,从事多媒体数据压缩、网络信息系统研究。 1995-2005 Tsinghua Tongfang Optical Disc C, L All rights lear , close all %清除所有内存变量、图形窗口I = imread(’ tif’); %将图像文件 tif 的图像像素数据读入矩阵Iimshow( I) %显示图像I ,图像对比度低,如图1afigure , imhist ( I) %在新图形窗口中显示图像I 的直方图,如图1c。可以注意到图像%亮度范围相当狭窄,并未完全覆盖可能的范围[0 ,255 ]I2 = histeq( I) ; %对图像I 做直方图均衡补偿在整个范围内展宽亮度值并输出到矩阵I2 ,因而改进了图像I 的对比度figure , imshow( I2) %在新图形窗口中显示新图像I2 , 如图1bfigure , imhist ( I2) %在新图形窗口中显示图像I2 的直方图, 如图1dimwrite ( I2 , ’ png’); %将对比度调节的结果图像写入PNG格式的文件a 原图 b 直方图均衡结果图 c 原图像的直方图 d 结果图像的直方图图1 直方图均衡补偿消去图像噪声程序运行后,可得如图1 的对比图像。 2 用形态学方法进行图像处理与分析以 tif 为图像实例,介绍用形态学方法对灰度图像进行处理与分析的技术要点,即对灰度图像进行如下操作:去除图像的不均匀背景;用设置阈值的方法(thresholding) 将结果图像转换成二值图像;通过成分标记(components labeling) 返回图像中的目标对象属性,并计算目标对象的统计数字特征。其算法步骤描述如下:(1) 用工具箱函数imread 和imshow 读取和显示8 位灰度图,如图2a 。(2) 用形态学开运算(Morphological Opening) 估计背景。通过调用imopen 并对输入图像I 执行形态学开运算, 取半径为15 的圆盘结构元素,且结构元素通过函数strel 建立。形态学开运算有消除不能完全包含在半径为15 的圆盘内的目标对象的作用。注意到图像(如图2b) 中央的背景照度(background illumina2tion) 比底部要亮。(3) 用surf 指令察看背景图像。用Surf 指令创建近似背景的彩色表面图(如图2c) ,使人可以看到在一个矩形区域上的数学函数特征。在表面图中,[0 , 0 ] 表示原点, 或图像左上角,曲面图最高部分表示背景的最亮像素(从而 tif 的背景的最亮像素出现在图像中央行的附近,而最暗像素出现在图像的底部) 。(4) 从原图像中减去背景图像。须用图像处理工具箱的图像算术函数imsubtract 产生均匀的背景(如图2d) 。(5) 调节图像对比度。用imadjust 指令增大图像对比度(如图2e) 。imadjust 函数需要一个输入图像且也可带两个矢量: [ low high ] 和[ bottom top ] 输出图像通过将输入图像中low 值映射到输出图像中的bot2tom 值、high 值映射到输出图像中的top 值,并将low 与high 间的值进行线性缩放而产生。(6) 对图像进行阈值处理。先调用graythresh ,自动计算一个适当的阈值;然后使用graythresh 返回的阈值,调用im2bw 执行阈值处理,将灰度图像转换成二值图像(如图2f) 。(7) 确定图像中的目标对象并予以标记。调用bwlabel 寻找连通成份而且用惟一的数字将他们分类标记。bwlabel 接受一个二值图像和指定各目标对象的连通性的值(4 或8 ,表示4 或8 连通) 作为输入。注意: 结果的准确性依赖于许多因素,包括: 目标对象的大小; 近似背景的准确程度; 是否设定连接3 2 第2 期 何希平等: 基于MATLAB 的图像处理与分析 1995-2005 Tsinghua Tongfang Optical Disc C, L All rights a 原图b 背景性参数为4 或8 ; 是否任何目标对象均相接(在这种情况下他们可能被标记为同一目标对象) ;在该实例中, rice 的一些谷粒正好相接,因此bwlabel 把它们视为了同一目标对象。(8) 查看标记矩阵。看一看bwlabel 产生的标记的近似形状是有用的。调用imcrop 并用鼠标选择包含某一目标对象的一部分及其一些背景的部分图,则所选部分图的像素值会在MAT2LAB 窗口中返回。若查看上面的结果,你会看到c 背景的表面图d 原图与背景的差一个对象的一角标以某数字标记k ,这意味着它是第k 个被bwlabel 分类的目标对象。imcrop 函数也可带矢量指定剪裁矩形的坐标。在这种情况下,它不执行交互式操作。举例来说,rect = [15 25 10 10 ] ; roi = imcrop (labeled ,rect)这个调用指定一个剪裁矩形的左上角坐标始于(15 ,25) ,而且高度和宽度均为10 。一种查看标记矩阵的好方法是将它显示成e 图像对比度调节结果 f 阈值处理后的二值图一种假彩色索引图像(如图2g) 。在假彩色索引图像中,将标记矩阵中区分每一对象的数字映射成了相关色彩映射矩阵中的一种不同的颜色。当把一个标记矩阵看成一个RGB 图像时,图像中的对象是比较容易区别的。为此, 使用la2bel2rgb 函数。使用该函数时,可以指定色彩映射表,背景颜色,以及标记矩阵中的对象如何映射为色彩映射表中的颜色。(9) 测量图像中的对象属性。regionprops 指令可测量图像中的对象或区域的属性,并返回一g 假彩色标记图h 谷粒大小分布图图2 形态学图像处理的对比分析结果个结构数组。当将其作用于一个图像成分的标记矩阵时,它为每个成分建立一个结构元素,而每一结构元素包含一个标记成分的一些基本属性。regionprops 函数支持对许多不同的属性予以测量, 但是设定属性参数为’basic’旨在返回最常用的三个量: 面积(Area) , 质心或块中心(Centroid) 和边框(BoundingBox) 。边框Bounding2Box 表示能容纳一个区域(所举实例中的谷粒)的最小长方形, 为四元素矢量: [ left top widthheight ] 。(10) 在图像中计算目标对象的统计特性。使用MATLAB 函数max , mean , 和hist 可计算被阈值处理的目标对象的一些统计属性(如图2h) 。图像处理工具箱也有一些统计函数,如mean2 和std2 ,适用于图像数据,因为他们对二维空间的数据返回单一值。下面是算法实现的程序代码:%程序代码: mclear , close all ,I = imread(’ tif’); imshow( I) %读取和显示8 位灰度图 tif4 2 重庆工商大学学报 (自然科学版) 第20 卷 1995-2005 Tsinghua Tongfang Optical Disc C, L All rights background = imopen( I ,strel (’disk’,15) ) ; %取半径为15 的圆盘结构元素对图像用开运算估计背景figure ,imshow(background) %显示背景图figure , surf (double (background (1 :8 : end ,1 :8 : end) ) ) ,zlim( [ 0 255 ]) ; %显示背景的彩色表面图,对8 ×8 格点取样set(gca ,’ydir’,’reverse’);I2 = imsubtract ( I ,background) ; figure , imshow( I2) %从原图像中减去背景图像,并显示结果图I3 = imadjust ( I2 , stretchlim( I2) ,[0 1 ]) ;figure , imshow( I3) ; %调节图像对比度,并显示结果图level = graythresh( I3) ;bw = im2bw( I3 ,level) ; figure , imshow(bw) %将灰度图像转换成二值图像[ labeled ,numObjects ] = bwlabel(bw ,4) ; % 成分标记,4 具体指定4 - 连通成分ain = imcrop (labeled) % 用鼠标选取实现交互式剪裁标记成分的一部分RGB-label = label2rgb(labeled , @spring , ’c’, ’shuffle’); %把一个标记矩阵转换成一个RGB 图像figure ,imshow(RGB-label) ;graindata = regionprops(labeled ,’basic’) %调用regionprops ,为rice 的每一经阈值处理%的谷粒返回一个基本属性的结构。由BoundingBox 的域返回四元素矢量: [ left top width height ]。graindata (51) Area , graindata(51) BoundingBox , graindata(51) Centroidallgrains = [ Area ] %用点号存取graindata 的所有元素的面积域并将该数据存入%新的矢量allgrains。这个步骤简化了对面积量的分析,因为不必使用域名存取面积。max(allgrains) %找最大谷粒的大小。allgrains 中的数据是一维的, 故函数mean 和std 是适用的。biggrain = find(allgrains = = ans) %使用find 指令返回该最大谷粒的成分标记mean(allgrains) %求平均粒径hist (allgrains ,20) %作包含20 个方柱的显示谷粒大小分布的直方图。直方图表明,在rice 图像中谷粒最通常的%大小在300 到400 个像素的范围内(如图2h) 。 3 用分水岭分割法检测连通目标在一个图像中检测目标是图像分割的一个例子。为分割连通目标,时常用Watershed 变换。如果把一幅图像看做一个具有山(高亮度) 和低谷(低亮度) 的表面,那么这个变换在一幅图像中找亮度低谷。实现包括下列步骤:(1) 读图像。读入图像afmsurf tif , 它是一幅原子能显微镜下的衣料表面图像(如图3a) 。(2) 对比度最大化。注意到图像中有许多彼此连通的不同大小的对象。为使通过watershed 变换找到的低谷数目最小,我们使感兴趣的对象的对比度达到最大。对比度增强的一个常用的技术是综合应用top- hat 和bottom - hat 变换。top - hat 变换定义为原图像和它的开之差。图像的开是一与特定结构元素匹配的图像前景部分的集合(如图3b) 。bottom - hat 变换定义为在原图像和它的闭之间的差。图像的闭是一与特定结构元素匹配的图像背景的集合(如图3c) 。通用的结构元素是正方形,长方形,圆盘,菱形,球和线。既然图像中我们感兴趣的目标对象看起来像圆盘,我们用strel 函数建立一个半径为15 个像素的圆盘形结构元素。这个圆盘尺度是图像中的目标对象的平均半径的一个估计。(3) 图像相加减。看到top - hat 图像含有与结构元素匹配的对象的”巅峰”。相反,bottom - hat 图像显示出感兴趣的目标对象之间的间隙。为使目标对象与分隔它们的间隙之间的对比达到最大,用“原图+ top - hat 图像- bottom - hat 图像”得到增强的结果图(如图3d) 。(4) 转换感兴趣的对象。调用watershed 变换找出图像的亮度”低谷”,把imcomplement 函数作用于增强过的图像上,将感兴趣的目标对象转换为亮度低谷,得到增强图的补图(如图3e) 。(5) 检测亮度低谷。对所得补图运用imextendedmin 函数检测低于某特别阈值的所有亮度低谷。imextendedmin 函数的输出是一个二值(逻辑值) 图像(如图3f) 。二值图像中重要的是区域的位置而非区域的大小。用imimposemin 函数把补图改为只含有那些由imextendedmin 函数找到的低谷,并将低谷的像素值变为0 (8 位图像可能的深谷) (如图3g) 。(6) Watershed 分割。通过watershed 变换,可找出来所有含有强加给最小值的区域。用watershed 函数实现Watershed 分割。watershed 函数返回一个标记矩阵,它含有对应于watershed 区域的非负数。凡未落入5 2 第2 期 何希平等: 基于MATLAB 的图像处理与分析 1995-2005 Tsinghua Tongfang Optical Disc C, L All rights 图3 用Watershed 分割法检测连通目标的图像渐近过程任何watershed 区域的像素均被赋予像素值0。用label2rgb把一个标记矩阵变为一幅图像(如图3h) 。(7) 从标记矩阵中抽取目标对象的特征。可用region2props 函数从标记矩阵中抽取特征。比如说,可以计算两个量(面积和方向) 并把他们看成彼此的一个函数。下面给出算法的实现代码:%程序代码: mafm = imread (’afmsurf tif’); figure , imshow(afm) , title (’surface im2age’);se = strel (’disk’, 15) ;Itop = imtophat (afm , se) ; figure , imshow( Itop , [ ]) , title (’top - hat im2age’);Ibot = imbothat (afm , se) ; figure , imshow( Ibot , [ ]) , title (’bottom - hatimage’);Ienhance = imsubtract (imadd ( Itop , afm) , Ibot) ; figure , imshow( Ien2hance) , title (’original + top - hat - bottom - hat’);Iec = imcomplement ( Ienhance) ; figure , imshow( Iec) , title (’complementof enhanced image’);Iemin = imextendedmin( Iec , 22) ; figure , imshow( Iemin) , title (’extend2ed minima image’);Iimpose = imimposemin ( Iec , Iemin) ; figure , imshow( Iimpose) , title ( ’imposed minima image’);wat = watershed( Iimpose) ;rgb = label2rgb(wat) ; figure , imshow(rgb) ;title (’watershed segmented image’);stats = regionprops (wat , ’Area’, ’Orientation’); area = [ stats ( :) Area ] ; orient = [ stats( :) Orientation] ;figure , plot (area , orient , ’b 3 ’); title (’Relationship of Particle Orienta2tion to Area’);xlabel (’particle area (pixels) ’); ylabel (’particle orientation (degrees) ’);参考文献:[1 ] 孙兆林MATLAB x 图像处理[M] 北京:清华大学出版社,2002[2 ] 崔屹 图像处理与分析———数学形态学方法及其应用[M] 北京:科学出版社,2000[3 ] 张远鹏,董海,周文灵 计算机图像处理技术基础[M] 北京:北京大学出版社,1996Image processing and analysis based on MATLABHE Xi - ping1 , ZHANG Qiong - hua2( Center of Experiment and Practice ,ChongQing Technology and Business University ,ChongQing 400033 ,China ; Library , ChongQing Technology and Business University , ChongQing 400033 ,China)Abstract :This paper first introduces the functions of MATLAB image processing toolbox , then presents sometechniques in image processing and analysis , such as image enhancement by using histogram equalization , image fea2ture extracting and analysis with morphological methods , and objects detection through watershed image Key words : grayscale intensity image ; morphological transform; labeling ; segmentation ; feature extraction责任编辑:杨祖彬6 2 重庆工商大学学报 (自然科学版) 第20 卷 1995-2005 Tsinghua Tongfang Optical Disc C, L All rights 收稿日期:2002208224MATLAB 及其在图像处理中的应用许志影,李晋平(中国矿业大学资源学院,江苏徐州 221008)摘要: 介绍了MATLAB 的特点和功能,分析了MATLAB 在图像处理中的应用,并结合实例说明了MATLAB 在图像处理中关键词: MATLAB ; 图像处理; 边缘提取中图分类号: TN 73 文献标识码: AMATLAB and Its Application to Digital Image ProcessingXU Zhi2ying ,LI Jin2ping(School of Resource & Geoscience ,China University of Mining and Technology ,Xuzhou 221008 ,China)Abstract :Introduces properties and functions of MATLAB ,and analyses its applications to digital image processing ,finally ,displays the a2bility of MATLAB in image processing with an Keywords :MATLAB ;image processing ;edge detectionMATLAB 软件由美国Math Works 公司于1984 年推出,历经十几年的发展和竞争,现已成为( IEEE) 国际公认的最优秀的科技应用软件之一。作为一个跨平台的软件,MATLAB 已推出Unix、Windows 9x/ NT、Linux 和Mac 等十多种操作系统平台下的版本,大大方便了在不同操作系统平台下的研究工作。目前基于Windows 系统的最新版本已上升到MATLAB 5 ,它继承了以往版本的优点,非常容易使用。现在,MATLAB 已经发展成为一个系列产品:MATLAB 主包和各种工具箱(TOOLBOX) 。目前已经推出了30 多个工具箱,这些工具箱可分为两大类:功能性工具箱和学科性工具箱。功能性工具箱主要用来扩充其符号计算功能、图示建模仿真功能、文字处理功能以及硬件实时交互功能,能用于多种学科。而学科性工具箱是专业比较强的,如控制工具箱、信号处理工具箱、图像处理工具箱和小波工具箱等多个学科的专业工具箱。借助于这些工具箱,各个层次的研究人员就可方便地进行研究工作,提高工作效率。本文将简要介绍MATLAB 5 及其在图像处理中的应用,希望对从事图像处理工作的研究人员有所帮助。1 MATLAB 概述MATLAB 最初是作为矩阵实验室(Matrix Labora2tory) 用来提供通往LINPACK和EISPACK矩阵软件包接口的。后来,它逐渐发展成为通用科技计算和图视交互系统的程序语言,其数据的基本单元是矩阵。它的指令表达与数学、工程中常用的习惯形式十分相似,从而使许多用C 或Fortran 实现起来十分复杂和费时的问题用MATLAB 就可以轻松地解决。MAT2LAB 的典型应用包括:数学计算、算法研究、数据分析和计算结果可视化、建模与仿真等。 1 MATLAB的特点MATLAB 有三大特点:一是功能强大。主要包括数值计算和符号计算、计算结果和编程可视化、数学和文字统一处理、离线和在线计算。二是界面友好,编程效率高。MATLAB 是一种以矩阵为基本单元的可视化程序设计语言,语法结构简单,数据类型单一,指令表达与标准教科书的数学表达式相近。三是开放性强。MATLAB 有很好的可扩充性,可以把它当成一种更高级的语言去使用。使用它很容易编写各种通用或专用应用程序。 2 MATLAB的主要功能MATLAB 之所以成为世界顶级的科学计算与数学应用软件,是因为它随着版本的升级与不断完善而具有愈来愈强大的功能。 
又是一年一度毕业季,前阵子经常有一些师弟来问我,毕设选题应该怎么选,毕业论文应该怎么写,感觉大家都挺迷茫的,那我就跟大家稍微分享一下我自己的经验吧。首先声明,此文章针对小白,为那些没有写过论文并且不知道如何下手的同学,大神莫喷哈。关于计算机基础薄弱的同学如何快速的写一篇毕业论文,我个人的建议是:做工程性的毕业设计和论文,别选算法类型的论文,并不是因为算法文章不好水过去,其实算法的文章也非常好水过去,但是有风险,当你做的非常水的时候,例如直接从github摘抄一个算法然后把算法的公式哔哩吧啦讲了一遍,老师都是一眼就看明白的,他想放过你可以让你过,但是假设他心情不好或者跟你关系一般想要为难你,那就比较难搞了。而且选一个算法方向的毕业设计并且水过去的话,对你本身来说是没有任何帮助的。那选择工程性的毕业设计和论文有什么好处呢?真的可以学的到东西,对于大部分想找开发岗位的同学的就业来说也是有帮助了。文章比较好写,逻辑非常明确,不用担心凑不到字数。说了这么多,下面就来讲如何写一篇关于计算机的论文(工程性的设计)。首先是选题,一般老师都会提供若干个选题给你选,其中必然包括几个“XX系统的设计与开发”,这样的选题就是符合我们前面的假设和预想的。盘他!假设我现在选了一个题目是“基于SSM的XX网上商城的设计与开发”。选完题目就面临着一个问题:是先做开发还是先写文章,或者是一边写一边开发。我的建议是一边写一边开发。原因是:开发的过程是需要写一些文案的,比如需求分析、数据库的表结构的关系、整个系统的交互逻辑等等。而这些文案是可以出现在我们的论文当中的。那接下来就说一下如何开发和写文论,当然某些开发过程我只能粗略的说一下。摘要:这是所有论文的第一个小title,说他恶心有时候也恶心,说他简单也是蛮简单的。那么这一部分究竟是要写什么的?由于这一部分需要展现出做这个系统的必要性、开发这个系统的实现方式、系统的功能和系统的作用。所以可以这样写:随着中国经济的高速发展以及网络技术的普及,互联网的技术得到全面的发展,中国的各行各业都在互联网的影响下发生了变革。互联网的快速发展催生了许多产业,其中最具代表性的便是电子商务,电子商务使得企业和客户的营销关系由实体店销售准换为网络电子商务营销。马云曾说:“让天底下没有难做的生意”,越来越多的店家选择在网上开店,使得交易不再限制于天南地北,同时也大大降低了店家的经营成本,在提高收益的同时,也方便了客户,本课题正式在这种背景下应运而生。本课题介绍了“基于SSM的XX网上商城”的开发环境、需求分析、界面设计和数据库设计以及涉及到的框架。本系统采用了B/S架构,使用了Java、HTML、JS等语言,使用了主流的后台开发框架SSM(spring+springMVC+Mybatis),以及采用了开源的轻量级数据库Mysql进行开发,为网络商城提供了前端展示和后台管理的模块,实现了注册、登录以及购物等主要功能,为消费者提供了便捷快速的购物体验,以及为提高了店家的销售效率。关键字:网上商城,SSM,Java,HTML,JS,MySQL(关键字一般就是把摘要中提及到的关键性技术提取出来,让阅读者一目了然,知道哪些是重点)Abstract:(英文摘要建议谷歌翻译,然后把明显错误的地方修改一下即可)第一章:引言这一部分也是比虚的,其实随便扯一扯就可以了,一般包含以下几部分背景研究内容。其中背景主要讲一些关于社会发展的趋势导致了一些什么问题,而这些问题又应该如何去解决,多说几句,写到两三百字即可。研究内容就是针对上述的背景我们如何进行改进。细心的同学可能会说,感觉跟摘要有些重复。是的!这两部分内容其实是挺重复的,但是没关系,不过不要使用完完全全一样的话去描述,因为最后论文查重的时候会对文章自引用进行查重的。这一部分也是三五百字即可。第二章:系统的开发技术介绍这一部分是需要我们在正式开发之前做好的技术调研,然后对这一部分的技术进行详细的介绍。这一部分我不可能细讲,因为内容太多了,而且对于不同的项目有不同的内容,在查阅资料的过程也是提升技术的一个重要的环节,你可以真真切切的了解到开发一个工程是需要哪方面的知识,因此我就对我所选的这个课题应该使用到的技术栈进行一下介绍,也算是抛砖引玉,各位同学可以根据自己的实际情况进行撰写。开发不同的系统虽然涉及到的业务逻辑不同,处理方式也千差万别,但是本质上都是一样的,都是前端界面通过服务器跟数据库进行数据交互的一个过程,涉及到的内容也无非就是前端、后台和服务器。但是有一个需要注意的点,就是不要把HTML、JAVA等使用的语言介绍也给堆在这里,老师没细看还好,细看还是会显得太水字数了,记住,写工程性的课题不怕没字数。那问题来了,语言介绍不给写那应该些什么呢?应该写涉及到的框架、使用的工具。这些就够了,随随便便就几千字了。下面举例简单说明一下。 前端强调一下,不要把HTML、CSS等一下前端的规范展开来写,可以轻描淡写,但篇幅不能过多。这里可以写前端框架的使用,比如使用npm管理包(可以介绍一下npm以及在工程中的使用)、vue的使用(同样可以介绍vue框架以及应用)、element(element以及使用他的好处)等等。也希望同学在做毕设的过程中要真的去了解这些技术并且去使用它,相信我,看完再去用你的技术会有质的飞跃。 后台这一部分是重点,对于本课题来说,标题就写了是基于SSM的。对于这个java框架并不熟悉的同学来说建议先去查一下资料,而且很多同学会有疑问,使用技术框架的目的就是为了让开发更加的便捷和快速,但是为什么我们自己在开发的过程中会感觉好像变得更加复杂?很负责任的告诉你,是正常的。因为框架不仅会帮我们封装好一些常用的方法,而且会考虑到更新迭代以及代码可读性等等的一系列的问题,某些规定和配置我们之所以没有感受到他的好处是因为这种校园内的开发并不涉及生产问题,也不会有很多的更新迭代,更加不会考虑到代码的可读性。例如spring的工厂,一开始使用的时候很多同学会觉得为什么我new一个类的时候还要去改配置文件,直接new不香吗?直接new是很香,但是你考虑到真正去工作的时候,假设你要改类的一些关系的时候,还要去改代码,当工程一大,代码去哪里找呢?一个一个文件看吗?显然是非常不可取的,效率非常低,这个时候配置文件的优势就发挥出来了,直接修改配置文件,不需要更改代码,耦合性也大大的降低。好像跑题了,说了这么多就告诉同学们,要沉住气,理解框架这样设计背后的原因,对大家自身技术的提高非常的有帮助!那这一部分我们就可以介绍spring(包括spring的IOC、spring的工厂、spring的AOP等等,并且可以在论文中强调如何应用到我们的系统当中)、springMVC(这一部分可以讲解srpingMVC作为一个连接前端和数据库的工具在实际工作过程中的具体流程,也可以讲述springMVC的分层的概念以及如何应用)、Mybatis(包括跟JDBC的关系、mybatis依赖的配置、使用到的接口、动态代理、一级缓存和二级缓存以及延迟加载等等的一些技术问题) 服务器和数据库这一部分可以介绍一下用来搭建服务器的工具和所使用的数据库。假设你是使用了云服务器来搭建了,可以详细介绍一下云服务器的搭建过程包括防火墙、端口等等内容。一般服务器使用tomcat进行搭建,可以把tomcat介绍一下并且介绍一下tomcat是如何监听和解析用户请求的具体流程。一般小型的项目采用MySQL作为数据库,可以详细说一下选择MySQL的原因,比如相对于Oracle的好处。可以介绍一下MySQL数据库的一些特点包括分页、是否支持事务等等。第三章:需求分析这一部分是针对具体的业务场景来分析需要开发哪些功能,这一部分可以让你感受一下产品经理的职责,只不过不需要跟程序员对接,因为你自己就是程序员哈哈。一般来说分成两部分就可以了,一部分是对于前端的业务流程,另一部分就是后台服务器的业务流程,可以使用一些软件来绘画流程图,想图个方便可以直接使用word自带的图形进行编写,也不至于难看,就比较简约。想做的好看点的话个人推荐使用xmind,非常简单,可以快速做出美观的流程图。如果没有什么思路,那前端就按照着使用者的逻辑去写,比如用户需要注册、登录、找回密码、购物、退货等操作,那后端就对应着这些前端逻辑需要有相应的业务处理。个人感觉这一部分比较好写,就不再赘述。第四章:系统的设计和实现这一部分可以挑选一些有代表性的功能出来细讲,有些同学可能会有疑问,论文可不可以贴代码呢?答案是可以的。但是我个人的建议是贴伪代码,不要把你写的长篇大论的代码全部放进去,不好看而且逻辑混乱,应该做的是把代码抽取为伪代码,贴代码的目的是为了让阅读者清晰地读懂你是如何实现这个功能的,他并不会在意你的语法你的命名。下面列举若干个可以写的内容,并不限于此。 SSM框架的整合。如何使用Spring来整合并且管理SpringMVC和M 客户登录状态保存的实现。这一部分可能会涉及到cookies,sessions以及http报文解析等等,都可以详解。 后台商品管理的功能。这一部分可以根据管理员的后台管理功能进行描写。 商品搜索功能。可以涉及到数据库的模糊搜索。 数据库表格的设计。可以体现数据库表格设计的时候如何遵守三范式。 可以写在开发过程中遇到的一些疑难杂症。 可以写开发过程中使用到的一些比较具有亮点的语言特性。比如java的多线程、lambda表达式。又比如实现注册功能的时候使用的正则表达式。……等等数不胜数。第五章:运行结果这一部分非常好写了。截取一些关于你的系统的界面并且介绍一下功能,尽量说详细点,就ok了。第六章:总结以及展望这一部分也是比较水的一部分,但是也希望同学们认真写一写。可以写一下你开发这个项目的过程中学习到了什么,可以是XX技术,也可以是艰苦奋斗的精神……。展望可以写有望发展成另外一个淘宝……开玩笑开玩笑,总之劈里啪啦凑个几百字即可。参考文献把你开发过程中参考过的文章、论文贴进去之后,往往会发现参考文献不够,太少了!那怎么办呢?那就贴一些关于使用的技术的文章或者参考手册咯,虽然大部分是没看过的,但是还是希望大家可以多少看一看(正义之气跃然纸上)。去知网查找参考文章然后添加到你的参考文献是非常方便的,只需要找到对应的文章并且选择“引用”功能,即可自动生成引用的文字,直接复制到你的论文中。致谢第一步,感谢你的导师,感谢你的院领导,感谢你的校领导。说的好听后可能答辩的时候不会太为难你……然后你要感谢你的家人你的舍友你的朋友或者是你家的狗(开玩笑),都可以的,这一部分又轻轻松松两百字。至此,一篇论文就写完了,是不是觉得挺简单的呢?呸!简单个鬼,明明就这么多字,还要看这么多资料,还要自己写代码。确实,要认真完成不是一件简单的事情。但是我前面强调过了,这是针对那些基础一般但是想学东西的同学。当你独自完成这个课题后,你会发现自己的东西简直太多太多了。而且春招即将来临,许多问题在你面试的过程中也会遇到,而且也不至于跟面试官说我什么项目都没做过……
计算机专业毕业论文的写作方法指导一、前言部分前言部分也常用“引论”、“概论”、“问题背景”等做标题,在这部分中,主要介绍论文的选题。首先要阐明选题的背景和选题的意义。选题需强调实际背景,说明在计算机研究中或部门信息化建设、管理现代化等工作中引发该问题的原因,问题出现的环境和条件,解决该问题后能起什么作用。结合问题背景的阐述,要使读者感受到此选题确有实用价值和学术价值,确有研究或开发的必要性。前言部分常起到画龙点睛的作用。选题实际又有新意,意味着你的研究或开发方向对头,设计工作有价值。对一篇论文来说,前言写好了,就会吸引读者,使他们对你的选题感兴趣,愿意进一步了解你的工作成果。二、综述部分任何一个课题的研究或开发都是有学科基础或技术基础的。综述部分主要阐述选题在相应学科领域中的发展进程和研究方向,特别是近年来的发展趋势和最新成果。通过与中外研究成果的比较和评论,说明自己的选题是符合当前的研究方向并有所进展,或采用了当前的最新技术并有所改进,目的是使读者进一步了解选题的意义。综述部分能反映出毕业设计学生多方面的能力。首先,反映中外文献的阅读能力。通过查阅文献资料,了解同行的研究水平,在工作中和论文中有效地运用文献,这不仅能避免简单的重复研究,而且也能使研究开发工作有一个高起点。其次,还能反映出综合分析的能力。从大量的文献中找到可以借鉴和参考的,这不仅要有一定的专业知识水平,还要有一定的综合能力。对同行研究成果是否能抓住要点,优缺点的评述是否符合实际,恰到好处,这和一个人的分析理解能力是有关的。值得注意的是,要做好一篇毕业论文,必须阅读一定量(2~3篇)的近期外文资料,这不仅反映自己的外文阅读能力,而且有助于论文的先进性。三、方案论证在明确了所要解决的问题和文献综述后,很自然地就要提出自己解决问题的思路和方案。在写作方法上,一是要通过比较显示自己方案的价值,二是让读者了解方案的创新之处或有新意的思路、算法和关键技术。在与文献资料中的方案进行比较时,首先要阐述自己的设计方案,说明为什么要选择或设计这样的方案,前面评述的优点在此方案中如何体现,不足之处又是如何得到了克服,最后完成的工作能达到什么性能水平,有什么创新之处(或有新意)。如果自己的题目是总方案的一部分,要明确说明自己承担的部分,及对整个任务的贡献。四、论文主体前面三个部分的篇幅大约占论文的1/3,主体部分要占2/3左右。在这部分中,要将整个研究开发工作的内容,包括理论分析、总体设计、模块划分、实现方法等进行详细的论述。主体部分的写法,视选题的不同可以多样,研究型论文和技术开发型论文的写法就有明显的不同。研究型的论文,主体部分一般应包括:理论基础,数学模型,算法推导,形式化描述,求解方法,计算程序的编制及计算结果的分析和结论。要强调的是,研究型论文绝不是从推理到推理的空洞文章。研究型论文也应有实际背景,也应有到企业和实际部门调研的过程,并在实际调查研究中获取信息,发现问题,收集数据和资料。在研究分析的基础上,提出解决实际问题的、富有创建性的结论。技术开发型的论文,主体部分应包括:总体设计,模块划分,算法描述,编程模型,数据结构,实现技术,实例测试及性能分析。以上内容根据任务所处的阶段不同,可以有所侧重。在任务初期的论文,可侧重于设计实现,在任务后期的论文可侧重于应用。但作为一篇完整的论文应让读者从课题的原理设计,问题的解决方法,关键技术以及性能测试都有全面的了解,以便能准确地评判论文的质量。论文主体部分的内容一般要分成几个章节来描述。在写作上,除了用文字描述外,还要善于利用各种原理图、流程图、表格、曲线等来说明问题,一篇条理清晰,图文并茂的论文才是一篇好的论文。五、测试及性能分析对工程技术专业的毕业设计论文,测试数据是不可缺少的。通过测试数据,论文工作的成效就可一目了然。根据课题的要求,可以在实验室环境下测试,也可以在工作现场测试。在论文中,要将测试时的'环境和条件列出,因为任何测试数据都与测试环境和条件相关,不说明测试条件的数据是不可比的,因此也是无意义的。测试一般包括功能测试和性能测试。功能测试是将课题完成的计算机软硬件系统(子系统)或应用系统所要求达到的功能逐一进行测试。性能测试一般是在系统(子系统)的运行状态下,记录实例运行的数据,然后,归纳和计算这些数据,以此来分析系统运行的性能。测试实例可以自己设计编写,也可以选择学科领域内公认的、有一定权威性的测试实例或测试集。原则是通过所选择(设计)的实例的运行,既能准确反映系统运行的功能和性能,与同类系统又有可比性。只有这样,论文最后为自己工作所做的结论才有说服力。六、结束语这一节篇幅不大,首先对整个论文工作做一个简单小结,然后将自己在研究开发工作中所做的贡献,或独立研究的成果列举出来,再对自己工作的进展、水平做一个实事求是的评论。但在用“首次提出”、“重大突破”、“重要价值”等自我评语时要慎重。七、后记在后记中,主要表达对导师和其他有关教师和同学的感谢之意。对此,仍要实事求是,过分的颂扬反而会带来消极影响。这一节也可用“致谢”做标题。中外文的参考文献应按照规范列举在论文最后。这一部分的编写反映作者的学术作风。编写参考文献要注意:(1)要严格按照规范编写,特别是外文文献,不要漏写、错写;(2)论文内容和参考文献要前后对应,正文中凡引用参考文献的地方应加注;(3)列出的文献资料应与论文课题相关,无关的文献只会使读者感到你的研究目标很分散;(4)选择的参考文献应主要是近期的。
计算机(computer / calculation machine)是总称,一般在学术性或正式场合使用。在通常用语中,计算机一般指电子计算机中用的个人电脑。计算机是一种能够按照指令对各种数据和信息进行自动加工和处理的电子设备。它由多个零配件组成,如中央处理器、主板、内存、电源、显卡等。接收、处理和提供数据的一种装置,通常由输入输出设备、存储器、运算和逻辑部件以及控制器组成;有模拟式、数字式及混合式三种类型。
计算机的论文一般分为设计类和研究类,设计类就是做出来一个东西再加上论文,论文内容主要包括背景,研究现状,主要的技术,功能实现,系统结构以及总结等。研究类就是可以不用做出东西来,但是一般需要一些数据来证明自己的结论,论文里面就不需要再写功能实现自己系统结构等内容。