MATLAB编程实习-3700字——计算机软件实习报告

合集下载

matlab实训报告总结

matlab实训报告总结

matlab实训报告总结Matlab实训报告总结摘要:本文总结了在Matlab实训中所学到的知识和经验,包括Matlab的基本操作、常用函数的使用、图形绘制和数据处理等方面。

通过实际操作和实验练习,我们深入了解了Matlab的强大功能和灵活性,在数据处理和科学计算方面取得了令人满意的结果。

1. 引言Matlab是一种强大的科学计算软件,广泛应用于工程、数学、物理和其他科学领域。

在Matlab实训中,我们学习了如何使用Matlab 进行数据处理、模拟实验和图形绘制等操作。

2. 实训内容在实训中,我们首先学习了Matlab的基本操作,包括变量的定义和赋值、数组和矩阵的创建和运算,以及条件语句和循环语句的使用。

这些基本操作是我们后续实验的基础。

接着,我们学习了常用函数的使用。

Matlab提供了许多内置函数,例如求解方程、插值、傅里叶变换等。

我们通过实际例子学习了这些函数的使用方法,并在实验中应用到了实际问题中。

在图形绘制方面,Matlab提供了丰富的绘图函数,可以绘制二维和三维图形。

我们学习了如何绘制线条、曲线、散点图和柱状图等,并通过实验练习提高了我们的图形绘制能力。

我们学习了数据处理的方法。

Matlab提供了强大的数据处理函数,可以对数据进行滤波、拟合、统计和分析等操作。

我们通过实验掌握了这些数据处理方法,并将其应用到了实际数据中。

3. 实训成果通过Matlab实训,我们取得了一些令人满意的成果。

首先,我们掌握了Matlab的基本操作,能够灵活运用各种语句和函数解决问题。

其次,我们学会了使用Matlab进行数据处理和图形绘制,能够对实验数据进行分析和展示。

最后,我们通过实验练习,提高了自己的问题解决能力和创新思维。

4. 实训心得在Matlab实训中,我们遇到了一些困难和挑战。

但是通过不断的尝试和学习,我们克服了这些困难,取得了一些进步。

在实训中,我们学会了如何提高自己的编程技巧和问题解决能力,培养了耐心和坚持的品质。

matlab实训心得体会(通用23篇)

matlab实训心得体会(通用23篇)

matlab实训心得体会(通用23篇)matlab实训篇1自己刚刚接触matlab有半个学期的时间,说实话我现在对MATLAB还是摸不着头脑,一方面是自己接触的时间太短,另一方面,就是自己在上机方面投入的时间有限,实践比较少。

现在,我对MATLAB的印象仅仅在解决习题和绘制图形上,但是我很喜欢MATLAB的简单的语法,易于绘制图形,编程也非常容易, 并且具有功能强大的开放式的toolbox。

因此,尽管我一直没有这方面的应用,但是我还是对它非常感兴趣,自己正打算暑假好好研究研究MATLAB。

下面是我学习MATLAB在理论和实践方面的一点心得与体会,可能有些地方自己理解的不是很正确,但是随着学习的深入,我想我可以发现自己的错误所在。

首先我想说的是,在理论方面,在学习MATLAB过程中,我感觉到它和c语言有许多相似之处,他有c语言的特征,但是比c语言编程计算更加简单,适合于复杂的数学运算。

但是MATLAB跟其他语言也有着很大的不同。

现在用的比较多的编程语言,除了MATLAB就应该是c、c++、VHDL,VB和Delphi也接触过,如果自己抱着“把其他语言的思想运用在MATLAB里面”的话,那么我想,即使程序运行不出错,也很难把握MATLAB的精髓,也就很难发挥MATLAB的作用了。

众所周知MATLAB是一个基于矩阵运算的软件,但是,真正在运用的时候,特别是在编程的时候,许多人往往没有注意到这个问题。

在使用MATLAB时,受到了其他编程习惯的影响,特别是经常使用的C语言。

因此,在MATLAB编程时,for循环(包括while循环)到处都是。

.这不仅是没有发挥MATLAB所长,还浪费了宝贵的时间。

我这里想说的一点是,往往在初始化矩阵的时候注意到这个问题,懂得了使用矩阵而不是循环来赋值,但是,在其他环节上,就很容易疏忽,或者说,仍然没有摆脱C++、C的思想。

MATLAB博大精深,涉及的内容很多,所以,我认为不要试图掌握MATLAB的每一个功能,熟悉和你专业最相关的部分就可以了,这也是老师在课堂上经常说的。

matlab_实习报告

matlab_实习报告

matlab_实习报告在大学的学习生涯中,实习是一个非常重要的环节,它能够让我们将理论知识与实际应用相结合,提升自己的专业技能和综合素质。

本次实习,我选择了使用 MATLAB 这个强大的工具进行实践操作,通过一段时间的学习和实践,我收获颇丰。

一、实习目的本次实习的主要目的是深入了解和掌握MATLAB 软件的使用方法,能够运用其解决实际问题,并提高自己的编程能力和逻辑思维能力。

同时,通过实际项目的操作,培养自己的团队协作精神和解决问题的能力,为今后的学习和工作打下坚实的基础。

二、实习单位及岗位介绍我实习的单位是_____,在实习期间,我主要负责利用 MATLAB 进行数据分析和算法实现的相关工作。

三、实习内容及过程(一)基础学习在实习的初期,我首先对 MATLAB 的基本语法和操作进行了系统的学习。

了解了变量的定义、数据类型、矩阵运算、函数的编写等基础知识。

通过大量的练习和实例,我逐渐熟悉了 MATLAB 的编程环境,能够熟练地编写简单的程序。

例如,在学习矩阵运算时,我通过编写程序实现了矩阵的加法、乘法、求逆等操作,深刻理解了矩阵运算在数学和工程中的重要应用。

(二)项目实践在掌握了基础知识后,我开始参与实际的项目。

其中一个项目是对一组数据进行分析和处理,以提取有用的信息。

首先,我使用MATLAB 读取数据文件,并对数据进行预处理,包括去除噪声、缺失值处理等。

然后,运用统计学方法对数据进行分析,计算均值、方差、相关性等统计量。

最后,通过绘图函数将分析结果以直观的图表形式展示出来,以便更好地理解数据的特征和趋势。

在这个过程中,我遇到了很多问题。

例如,数据的格式不一致导致读取错误,算法的复杂度过高导致运行时间过长等。

通过查阅资料、请教同事和不断地调试,我最终解决了这些问题,顺利完成了项目任务。

(三)算法实现除了数据分析,我还参与了算法的实现工作。

在一个图像识别的项目中,需要使用机器学习算法对图像进行分类。

MATLAB上机实习报告

MATLAB上机实习报告

Matlab上机实习实习报告上周我们进行了本学期第二个实习部分-Matlab上机实习。

本次实习一星期,共做了四个部分。

分别是:一,Matlab基本操作;二,数值数组及其运算;三,Matlab图形绘制基础;四,SIMULINK仿真基础。

下面分别介绍个部分实习内容。

实习内容一Matlab基本操作1,实习目的:·掌握Matlab的启动和退出;·熟悉Matlab的命令窗口;·熟悉其他常用窗口和工具栏;2,对本软件有了初步认识后,接下来就开始指导书要求做一些训练了在指令窗中输入下面一段程序,功能是::画出衰减振荡曲线y=(e-t/3)sin3t及其他的包络线y0=(e-t/3)。

T的取值范围是[0,4 ]。

t=0:pi/50:4*pi;y0=exp(-t/3);y=exp(-t/3).*sin(3*t);plot(t,y,’-r’,t,y0,’:b’,t,-y0,’:b’)观察输出结果3,通过下拉菜单File:Preferences改变设置指令窗中的字体、颜色等。

如:数据显示格式的设置:Format short 小数点后四位(缺省情况),如显示p为3.1416。

Format long 小数点后十四位,如显示p为3.14159265358979。

Formant bank 小数点后两位,如显示p为3.14。

Format short e 小数点后四位科学记数法,如显示p为3.1416e+000。

Format long e 小数点后十四五位科学记数法,如显示p为3.141592653589793e+000。

在指令窗中键入y1=2*sin(0.3*pi)/(1+sqrt(5))然后利用回调指令计算y2=2*y1*cos(0.3*pi)/(1+sqrt(5))y1 =0.5000y2 =0.18164,了解软件中的一些功能和命令。

包括熟悉历史指令窗(Command History)、熟悉当前目录浏览器(Current Diretory)、熟悉工作空间浏览器(Workspace Browser),以及一些指令如: Clear 清除当前工作区中的所有变量Clc 清除指令窗中内容(未清除当前工作区中的变量)Clf 清除图形窗口Cd 设置当前工作目录Exit,quit 退出Matlab实习内容二数值数组及其运算1,实习目的·掌握一维数组的创建和寻访;·掌握二维数组的创建和寻访;·掌握的Matlab矩阵和数组的运算;·熟悉Matlab关系操作和逻辑操作;2,实习内容和步骤(1)常量与变量变量名区分字母大小写;变量名必须以字母打头,其后可以是任意字母,数字,或下划线的组合。

MATLAB实习报告

MATLAB实习报告

MATLAB实习报告实习报告一、实习单位概述我在公司完成了为期两个月的MATLAB实习。

该公司是一家致力于研发和生产先进电子产品的科技型企业。

公司专注于电脑硬件和软件产品的开发,拥有一支强大的研发团队,同时与多个国内外知名大学与研究机构合作。

二、实习内容在实习期间,我主要负责开发一个基于MATLAB的图像处理算法,用于自动识别和分类图像中的目标物体。

具体而言,我的任务包括以下几个方面:1.数据预处理:对输入图片进行预处理,包括灰度化、降噪、图像增强等操作,以提高后续算法的准确性和鲁棒性。

2.特征提取:使用MATLAB内置的图像处理工具箱,提取目标物体的特征信息,如颜色、纹理、形状等。

3.目标识别:通过编写MATLAB脚本,实现目标物体的自动识别,使用机器学习算法训练分类器,并应用于测试集中的图像。

4.结果评估:对算法的准确性和性能进行评估,包括计算分类准确率、召回率等指标,并分析算法的优缺点和改进空间。

三、实习收获通过这次实习,我收获了许多宝贵的经验和知识。

首先,我深入学习了MATLAB的图像处理工具箱,了解了常用的图像处理算法和技术。

在实践中,我熟悉了MATLAB的基本语法和函数,并学会了如何利用MATLAB进行图像的读取、处理和保存。

其次,我掌握了图像特征提取和目标识别的方法和技巧。

通过对图像进行灰度化、降噪和图像增强等预处理步骤,我能够有效提取目标物体的特征信息,并通过机器学习算法实现目标的自动识别和分类。

最后,我学会了如何评估和改进算法的准确性和性能。

通过对测试集中的图像进行分类,并计算分类准确率和召回率等指标,我能够客观地评估算法的优劣,并提出针对性的改进方法。

四、实习总结通过这次实习,我不仅得到了理论知识的巩固和实践技能的提升,还培养了团队合作和解决问题的能力。

在与团队成员的合作中,我学会了如何与他人相互协作,分享经验与知识,并且通过互相帮助和配合,达到更好的工作效果。

同时,面对实习过程中遇到的问题和困难,我学会了如何利用各种资源和工具,积极主动地解决问题。

matlab实践报告

matlab实践报告

竭诚为您提供优质文档/双击可除matlab实践报告篇一:matlab实习报告mATLAb实习报告姓名:吴涛专业:电子信息工程班级学号:信息(2)班20XX1605010230指导教师:宋艳霞钱云实习时间:20XX,5,13至20XX,5,17目录:一:实习目的 (3)二:实习任务...........................三:实习要求...........................四:实习目的...........................五:实习体会...........................一:实习目的熟悉matlab的软件环境熟悉matlab的基本使用方法二:实习任务1.掌握matlab语言的基本语法规则及基本操作命令的使用。

2.熟悉运用matlab的数组,矩阵运算,数学运算的运算方法。

3.熟悉matlab的字符串,单元数组。

4.熟悉matlab的程序设计。

5.熟悉matlab的符号计算功能。

6.熟悉matlab的绘图及句柄图形。

7.6熟悉matlab的guI设计。

三:实习要求1.每次上机要签到,记录。

2.做的题目要在上机结束后以电子版和woRD文档形式交给指定负责人。

3.认真做一份实习总结报告。

四:实习内容共六题第1题:求a和b的和。

代码:a=[1,2,3]b=[4,5,6]s=a+b结果:s=579第2题:求a和b的差。

代码:a=[4,5,6]b=[1,2(:matlab实践报告),3]h=a-b结果:h=333第3题:求下列方程组的解。

6x1+3x2+4x3=3-2x1+5x2+7x3=-48x2-4x2-3x3=-7代码:A=[6,3,4;-2,5,7;8,-4,-3] b=[3;-4;-7]a=A\b结果:a=0.60007.0000-5.4000第4题:用for语句求三角函数表。

代码:forx=0:0.1:pi/4disp([x,sin(x),cos(x),tan(x)]),en d结果:00100.10000.09980.99500.10030.20000.19870.98010.20270.30000.29550.95530.30930.40000.38940.92110.4228篇二:matlab课程实践报告mATLAb实践》课程设计学生姓名:林淑真学号:110900824专业班级:通信工程四班指导教师:郑晓明二○一二年六月十五日《目录1.设计目的.........................................................22.题目分析.........................................................23.总体设计.........................................................34.具体设计.........................................................35.结果分析.........................................................226.心得体会.........................................................237.参考书目.........................................................238.附录 (24)1、设计目的综合运用mATLAb工具箱实现图像处理的guI程序设计。

matlab实习总结.(大全5篇)

matlab实习总结.(大全5篇)

matlab实习总结.(大全5篇)第一篇:matlab实习总结.MATLAB和Mathematica、Maple并称为三大数学软件。

它在数学类科技应用软件中在数值计算方面首屈一指。

MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连 matlab开发工作界面接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。

在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。

可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用Matlab是一个强大的数学工具,它的应用广泛,涉及到各个领域.它使用起来十分方便,不用麻烦去定义变量.它的绘图能力很强,甚至可以模拟出三维视图.矩阵是它应用的核心,许多工程繁琐的运算都需要靠矩阵来化简,这正是它的生命力所在.但是,他的函数很多,开始学时记的比较痛苦,我已经深深感觉到了.不过看多了也就熟了,感觉和学五笔差不多.它的语法简单,像我学过C语言的学起来还是蛮容易的.它的数组定义十分符合自然,是从1开始的,数组元素的调用也很接近数学的表达.此外,函数的名字也很符合英文规则,反正我用得很开心就是了.通过学习matlab,我又一次锻炼了自己的思维.它学起来得心应手也让我明白了学习一门语言(c语言对学习其他语言的帮助指导作用.同时,它也加强了我理论联系实际的能力.这是一个专业课的基础工具,学好它是必要的.在第一章中,讲的是一些matlab的入门技术,除了一些基本操作与介绍之外,还初步认识了简单指令的编制,认识了一些matlab 的特殊符号,例如运算用到的加减乘除。

matlab计算机实验报告

matlab计算机实验报告

matlab计算机实验报告Matlab计算机实验报告引言Matlab是一种强大的计算机软件,广泛应用于科学计算、数据分析和工程设计等领域。

本实验报告旨在介绍我对Matlab的实验研究和应用。

通过实验,我深入了解了Matlab的功能和特点,并通过实际案例展示了其在科学计算和数据处理中的应用。

实验一:基本操作和语法在本实验中,我首先学习了Matlab的基本操作和语法。

通过编写简单的程序,我熟悉了Matlab的变量定义、赋值、运算符和条件语句等基本语法。

我还学习了Matlab的矩阵操作和向量化计算的优势。

通过实例演示,我发现Matlab在处理大规模数据时具有高效性和便捷性。

实验二:数据可视化数据可视化是Matlab的重要应用之一。

在本实验中,我学习了如何使用Matlab绘制各种图表,如折线图、散点图、柱状图和饼图等。

我了解了Matlab 的绘图函数和参数设置,并通过实例展示了如何将数据转化为直观的图形展示。

数据可视化不仅可以帮助我们更好地理解数据,还可以用于数据分析和决策支持。

实验三:数值计算和优化Matlab在数值计算和优化方面具有强大的功能。

在本实验中,我学习了Matlab 的数值计算函数和工具箱,如数值积分、微分方程求解和线性代数运算等。

通过实例研究,我发现Matlab在求解复杂数学问题和优化算法方面具有出色的性能。

这对于科学研究和工程设计中的数值分析和优化问题非常有用。

实验四:图像处理和模式识别Matlab在图像处理和模式识别领域也有广泛的应用。

在本实验中,我学习了Matlab的图像处理工具箱和模式识别算法。

通过实例演示,我了解了如何使用Matlab进行图像滤波、边缘检测和特征提取等操作。

我还学习了一些常见的模式识别算法,如支持向量机和神经网络等。

这些技术在计算机视觉和模式识别中具有重要的应用价值。

实验五:信号处理和系统建模Matlab在信号处理和系统建模方面也有广泛的应用。

在本实验中,我学习了Matlab的信号处理工具箱和系统建模工具。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

前言MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

在科学研究和工程应用中,往往要进行大量的数学计算,其中包括矩阵运算等。

这些运算一般来说都难以用手工精确、快捷地完成,而通常是借助特定的计算机程序来完成相应的计算功能,目前流行的编程语言有Basic、Fortran和C语言等。

对于大多数科学工作者来说,既需要掌握本专业的相关知识,还需要熟练地掌握编程语言,这无疑具有一定的难度。

编制程序也是繁杂的工作,不仅消耗人力与物力,而且影响工作进程和效率。

MA TLAB就是为解决上述矛盾而产生的。

MATLAB是数学建模必备工具。

MATLAB以商品形式出现后,仅短短几年,就以其良好的开放性和运行的可靠性,使原先控制领域里的封闭式软件包(如英国的UMIST,瑞典的LUND和SIMNON,德国的KEDDC)纷纷淘汰,而改以MATLAB为平台加以重建。

在时间进入20世纪九十年代的时候,MATLAB 已经成为国际控制界公认的标准计算软件。

到九十年代初期,在国际上30几个数学类科技应用软件中,MATLAB在数值计算方面独占鳌头,而Mathematica和Maple则分居符号计算软件的前两名。

Mathcad因其提供计算、图形、文字处理的统一环境而深受中学生欢迎。

MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。

附加的工具箱(单独提供的专用MATLAB 函数集)扩展了MATLAB 环境,以解决这些应用领域内特定类型的问题。

在国际学术界,MATLAB已经被确认为准确、可靠的科学计算标准软件。

在许多国际一流学术刊物上,(尤其是信息科学刊物),都可以看到MATLAB的应用。

在设计研究单位和工业部门,MATLAB被认作进行高效研究、开发的首选软件工具。

如美国National Instruments公司信号测量、分析软件LabVIEW,Cadence公司信号和通信分析设计软件SPW等,或者直接建筑在MATLAB之上,或者以MATLAB为主要支撑。

又如HP公司的VXI硬件,TM公司的DSP,Gage公司的各种硬卡、仪器等都接受MATLAB的支持。

一、彩色图转灰度图1、设计目的:1)掌握读、写图像的基本方法。

2)掌握MATLAB语言中图像数据与信息的读取方法。

3)理解图像灰度变换处理在图像增强的作用。

4)掌握绘制灰度直方图的方法,理解灰度直方图的灰度变换及均衡化的方法2、设计任务:(1)、读入彩色和灰度图像并显示;(2)、对彩色图像转化为灰度图像并显示;(3)、比较两种彩色图像转灰度图像方法的效果。

3、源代码如下:%RGB转YUVClear %清理变量空间x = imread('lena512.BMP'); %读取图像的像素值[width,height,dim]=size(x); %读取图像的尺寸信息x = double(x); %转换变量类型%方法一:元素乘y =round(x(:,:,1)*0.299+x(:,:,2)*0.587+x(:,:,3)*0.114); %每个像素值转换为Y值subplot(1,3,1),imshow(uint8(x)); %显示原图subplot(1,3,2),imshow(uint8(y)); %显示对应灰度图%方法二:矩阵乘A=[0.299 0.587 0.114;-0.147 -0.287 .0436;0.615 -.0515 -0.100];%建立转换矩阵for m=1:1:width %扫描图像的每一行for n=1:1:height %扫描图像的每一列stemp=[x(m,n,1) x(m,n,2) x(m,n,3)]*A';%将每一个元RGB像素点转换为YUVB(m,n,1)=stemp(1); %将Y分量赋值存储B(m,n,2)=stemp(2); %将U分量赋值存储B(m,n,3)=stemp(3); %将V分量赋值存储end %结束列扫描end %结束行扫描for m=1:1:width %扫描每一行for n=1:1:height %扫描每一列z(m,n)=uint8(B(m,n,1)); %将Y值赋予新图像end %结束列扫描end %结束行扫描subplot(1,3,3),imshow(uint8(z)); %显示彩色转灰度后得到的图像四、效果比较:由以上三幅图像可以看出,用不同的系数与R、G、B相乘后的值赋给亮度Y以后,所得的图像比对R、G、B求均值后赋给亮度Y的方法所得的图的亮度更加强,从MATLAB仿真平台也能看出用第一种方法得到的像素值比第二种方法得到的像素值大。

二、灰度图像的缩放1、设计目的:I、掌握灰度图像缩放的原理及算法;II、掌握利用if语句实现选择结构的方法;2、设计任务:对灰度图像实现按比例缩小和放大功能:缩小:行数*0.6,列数*0.75;放大:行数*1.2,列数*1.5。

3、源代码如下:(1)缩小代码:%按比例缩小Clear %清理变量空间x = imread('couple512x512.BMP'); %读取图像的像素值[width,height,dim]=size(x); %读取图像的尺寸信息%按比例缩小:k1=0.6, k2=0.75k1=0.6; %横向缩小比例k2=0.75; %纵向缩小比例m=round(k1*width); %计算横向缩小后尺寸n=round(k2*height); %计算纵向缩小后尺寸y=zeros(m,n); %用来存储新图像for i=1:1:m %扫描每一行h(i)=round(i/0.6); %对行元素坐标进行抽取end %结束行扫描for i=1:1:n %扫描每一列l(i)=round(i/0.75); %对列元素坐标进行抽取end %结束列扫描for i=1:1:m %扫描每一行for j=1:1:n %扫描每一列if h(i)>width h(i)=width;%判断行元素坐标是否超出,若超出则赋于最大行坐标else h(i)=h(i);end %否则直接赋值if l(j)>height l(j)=width;% 判断列元素坐标是否超出,若超出则赋于最大列坐标else l(j)=l(j);end %否则直接赋值y(i,j)=x(h(i),l(j)); %将抽取后的数值赋于新图end %结束列扫描end %结束行扫描subplot(1,2,1),imshow(uint8(x)); %显示原图像subplot(1,2,2),imshow(uint8(y)); %显示缩小后图像效果比较:由上图可以看出,缩小后的图像的出现失真。

(2)放大代码:%按比例放大Clear %清理变量空间x = imread('lena256.BMP'); %读取图像的像素值[width,height,dim]=size(x); %读取图像尺寸信息%按比例放大:k1=1.2, k2=1.5k1=1.2; %横向放大比例k2=1.5; %纵向放大比例m=round(k1*width); %计算放大后横向尺寸n=round(k2*height); %计算放大后纵向尺寸y=zeros(m,n); %存储放大后图像for i=1:1:m %扫描每一个行元素h(i)=round(i/1.2); %计算放大后图像的行元素坐标end %结束行扫描for i=1:1:n %扫描每一个列元素l(i)=round(i/1.5); %计算放大后图像的列元素坐标end %结束列扫描for i=1:1:m %扫描每一行for j=1:1:n %扫描每一列if h(i)>width h(i)=width;%判断行元素值是否越界,若是则赋于最大行值else h(i)=h(i);end %否则直接赋值if l(j)>height l(j)=hieght; %判断列元素值是否越界,若是则赋于最大列值else l(j)=l(j);end %否则直接赋值y(i,j)=x(h(i),l(j)); %向新图像赋值end %结束列扫描end %结束行扫描imshow(uint8(x)); %显示原图figure %建立显示窗口imshow(uint8(y)); %显示放大后图像效果比较:由上图可以看出,放大后的图像出现失真。

三、直方图均衡化1、设计目的:I、掌握灰度图像直方图均衡化的原理及算法;II、掌握利用for语句实现循环的方法;III、掌握绘制二维图形的常用函数。

2、设计任务:对灰度图像进行直方图均衡化处理3、源代码如下:%直方图均衡化Clear %清除变量空间x = imread('pattern.BMP'); %读取图像像素[width,height,dim]=size(x); %读取图像信息%原图直方图h = zeros(1,256); %用来存储像素累计出现次数l=0; %需用变量m=1; %需用变量for k=0:1:255 %扫描每一个像素for i=1:1:width %扫描每一行for j=1:1:height %扫描每一列if x(i,j)==k l=l+1; %判定该像素值是否与K值相同else continue %否则,继续end %结束IF语句end %结束列扫描end %结束行扫描h(m)=l;l=0; %变量恢复m=m+1; %数组坐标递增end %结束扫描像素值%总像素nf=width*height; %计算总像素值%分布概率hs=zeros(1,256); %存储分布概率for i=1:1:256 %扫描每个数组中的元素hs(i)=h(i)/nf; %计算每个像素出现的分布概率end %结束扫描每个数组元素%累积分布hp=zeros(1,256); %存储累计累计分布概率temp=0; %需用变量for i=1:1:256 %扫描数组的每一个元素temp=hs(i)+temp; %累计分布概率hp(i)=temp; %存储每个累计分布概率end %结束扫描%新灰度值g=zeros(1,256); %存储新像素值for i=1:1:256 %扫描数组的每个元素g(i)=round(255*hp(i)); %计算新像素值end %结束扫描%新像素替换旧像素for k=1:1:255 %扫描每一个像素值for i=1:1:width %扫描每一行for j=1:1:height %扫描每一列if x(i,j)==k y(i,j)=g(k); %判断元素值是否与K同end %结束IF语句end %结束列扫描end %结束行扫描end %结束扫描K值%图像显示z=0:1:255; %用来显示直方图分布的变量%新像素统计w = zeros(1,256); %存储新图像的像素值l=0; %需用变量m=1; %需用变量for k=0:1:255 %扫描像素值for i=1:1:width %扫描每一行for j=1:1:height %扫描每一列if y(i,j)==k l=l+1; %判断当前像素值是否与K相同else continue %否则继续end %结束IF语句end %结束列扫描end %结束行扫描w(m)=l;l=0; %变量初始化m=m+1; %数组下标递进end %结束像素扫描subplot(2,2,1),imshow(uint8(x)); %显示原图subplot(2,2,2),plot(z,h); %显示原图像素分布情况subplot(2,2,3),imshow(uint8(y)); %显示新图subplot(2,2,4),plot(z,w); %显示新图像素分布情况四、图像滤波1、设计目的:I、掌握均值滤波和中值滤波的原理及算法;II、掌握两矩阵相乘的方法。

相关文档
最新文档