版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、前言MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。 在科学争辩和工程应用中,往往要进行大量的数学计算,其中包括矩阵运算等。这些运算一般来说都难以用手工精确、快捷地完成,而通常是借助特定的计算机程序来完成相应的计算功能,目前流行的编程语言有Basic、Fortran和C语言等。对于大多数科学工作者来说,既需要把握本专业的相关学问,还需要娴熟地把握编程语言,这无疑具有确定的难度。编制程序也是繁杂的工作,不仅消耗人力与物力,而且影响工作进程和效率。MATLAB
2、就是为解决上述冲突而产生的。MATLAB是数学建模必备工具。 MATLAB以商品形式毁灭后,仅短短几年,就以其良好的开放性和运行的牢靠性,使原先把握领域里的封闭式软件包(如英国的UMIST,瑞典的LUND和SIMNON,德国的KEDDC)纷纷淘汰,而改以MATLAB为平台加以重建。在时间进入20世纪九十年月的时候,MATLAB已经成为国际把握界公认的标准计算软件。到九十年月初期,在国际上30几个数学类科技应用软件中,MATLAB在数值计算方面独占鳌头,而Mathematica和Maple则分居符号计算软件的前两名。Mathcad因其供应计算、图形、文字处理的统一环境而深受中同学欢迎。MATLA
3、B 的应用范围格外广,包括信号和图像处理、通讯、把握系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独供应的专用 MATLAB 函数集)扩展了 MATLAB 环境,以解决这些应用领域内特定类型的问题。在国际学术界,MATLAB已经被确认为精确、牢靠的科学计算标准软件。在很多国际一流学术刊物上,(尤其是信息科学刊物),都可以看到MATLAB的应用。在设计争辩单位和工业部门,MATLAB被认作进行高效争辩、开发的首选软件工具。如美国National Instruments公司信号测量、分析软件LabVIEW,Cadence公司信号和通信分析设计软件SPW等,或者直
4、接建筑在MATLAB之上,或者以MATLAB为主要支撑。又如HP公司的VXI硬件,TM公司的DSP,Gage公司的各种硬卡、仪器等都接受MATLAB的支持。一、彩色图转灰度图1、设计目的:把握读、写图像的基本方法。把握MATLAB语言中图像数据与信息的读取方法。理解图像灰度变换处理在图像增加的作用。4)把握绘制灰度直方图的方法,理解灰度直方图的灰度变换及均衡化的方法2、设计任务: (1)、读入彩色和灰度图像并显示; (2)、对彩色图像转化为灰度图像并显示; (3)、比较两种彩色图像转灰度图像方法的效果。3、源代码如下:%RGB转YUVClear %清理变量空间x = imread(lena51
5、2.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;%建立转换
6、矩阵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像素点转换为YUV B(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
7、%结束列扫描end %结束行扫描subplot(1,3,3),imshow(uint8(z); %显示彩色转灰度后得到的图像四、效果比较:由以上三幅图像可以看出,用不同的系数与R、G、B相乘后的值赋给亮度Y以后,所得的图像比对R、G、B求均值后赋给亮度Y的方法所得的图的亮度更加强,从MATLAB仿真平台也能看出用第一种方法得到的像素值比其次种方法得到的像素值大。二、灰度图像的缩放1、设计目的: = 1 * ROMAN I、把握灰度图像缩放的原理及算法; = 2 * ROMAN II、把握利用if语句实现选择结构的方法;2、设计任务: 对灰度图像实现按比例缩小和放大功能: 缩小:行数*0.6,列
8、数*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(
9、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);
10、 %将抽取后的数值赋于新图 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
11、); %计算放大后横向尺寸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 %否
12、则直接赋值 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、设计目的: = 1 * ROMAN I、把握灰度图像直方图均衡化的原理及算法; = 2 * ROMAN II、把握利用for语句实现循环的方法; =
13、3 * ROMAN 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; %判定该像素值是否与
14、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 %扫描数组的每一个
15、元素 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 %结束行扫
16、描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 %结束像素扫描subpl
17、ot(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、设计目的: = 1 * ROMAN I、把握均值滤波和中值滤波的原理及算法; = 2 * ROMAN II、把握两矩阵相乘的方法。2、设计任务:对灰度图像完成中值滤波和均值滤波,模板大小分别取3*3和5*5,并从滤波器和模板尺寸角度动身分析滤波效果。3、源代码如下: = 1 * GB2 均值滤波
18、:%均值滤波Clear %清理变量空间x = imread(lena256noisegau.BMP); %读取图像像素值width,height,dim=size(x); %读取图像数据%均值滤波 模块3*3k=3; %模块大小设定t=0; %需用变量x = double(x); %图像像素类型转换y=x; %用来存储新图象for i=round(k/2):1:(width-round(k/2)+1) %扫描每一行 for j=round(k/2):1:(height-round(k/2)+1) %扫描每一列 for m=i-round(k/2)+1:1:i+round(k/2)-1 %扫描k
19、*k的单元格的每一行,每k*k个元素取出 for n=j-round(k/2)+1:1:j+round(k/2)-1%扫描k*k的单元格的每一列 s=x(m,n); %赋值S t=t+s; %累加K*K个像素 end %结束列扫描 end %结束行扫描 y(i,j)=round(t/(k*k); %求K*K个数的平均值并赋于新图 t=0; %变量初始化 end %结束列扫描end %结束行扫描subplot(1,2,1),imshow(uint8(x); %显示原图subplot(1,2,2),imshow(uint8(y); %显示新图高斯噪声的滤波图椒盐噪声的滤波图效果比较:由上图可以看出
20、,对于高斯噪声,均值滤波不能很好的去除;对于椒盐噪声滤波对其的去除效果强于对高斯噪声的去除效果。 = 2 * GB2 中值滤波%中值滤波 模块5*5Clear %清除变量空间x = imread(lena256noisesalt.BMP); %读取像素值width,height,dim=size(x); %读取图像信息k=5; %设定参数Ktemp=1; %所用变量y=zeros(1,k*k); %存储矩阵z=x; %建立新图for i=round(k/2):1:(width-round(k/2)+1) %扫描每一行 for j=round(k/2):1:(height-round(k/2)+1) %扫描每一列 for m=i-round(k/2)+1:1:i+round(k/2)-1 %扫描5*5的单元格的每一行,每5*5个元素取出 for n=j-round(k/2)+1:1:j+round(k/2)-1%扫描5*5的单元格的每一列 y(temp)=x(m,n); %将5*5中每一个元素取出 temp=temp+1; %数组下标递增 end %结束列扫描 end %结束行扫描 temp=1; %数组下标恢复1 for t=1:1:k*k %扫描每个元素,5
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 4 《地球-我们的家园》(教学实录)部编版道德与法治六年级下册
- 化妆合同范例 简易范例
- 开发项目技术合同范例
- 2025年马鞍山货运上岗证考试题库
- 大学商铺合同范例
- 无锡农村平房买卖合同范例
- 再生钢材采购合同范例
- 农村合伙购房合同范例
- 技术成果合同范例
- 汕头律师合同范例
- 人教统编版高中语文必修下册第六单元(单元总结)
- DB13∕T 5542-2022 水利水电工程施工组织设计编制指南
- 液压转向器厂总平面布置课程设计
- 说明性语段的压缩(课堂PPT)
- 拔牙-ppt课件
- 注塑机作业指导书
- 建筑结构(第四版)
- 装配式钢板筒仓安装技术经验规程
- 液态粉煤灰台背回填施工工艺
- 关于某中心各装置现场整治实施细则之消漏
- 高标准农田竣工验收报告
评论
0/150
提交评论