好文档 - 专业文书写作范文服务资料分享网站

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

天下 分享 时间: 加入收藏 我要投稿 点赞

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

前言

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

在科学研究和工程应用中,往往要进行大量的数学计算,其中包括矩阵运算等。这些运算一般来说都难以用手工精确、快捷地完成,而通常是借助特定的计算机程序来完成相应的计算功能,目前流行的编程语言有Basic、Fortran和C语言等。对于大多数科学工作者来说,既需要掌握本专业的相关知识,还需要熟练地掌握编程语言,这无疑具有一定的难度。编制程序也是繁杂的工作,不仅消耗人力与物力,而且影响工作进程和效率。MATLAB就是为解决上述矛盾而产生的。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 / 16

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

一、彩色图转灰度图

1、设计目的:

1) 掌握读、写图像的基本方法。

2) 掌握MATLAB语言中图像数据与信息的读取方法。 3) 理解图像灰度变换处理在图像增强的作用。

4)掌握绘制灰度直方图的方法,理解灰度直方图的灰度变换及均衡化的方法

2、设计任务:

(1)、读入彩色和灰度图像并显示; (2)、对彩色图像转化为灰度图像并显示; (3)、比较两种彩色图像转灰度图像方法的效果。

3、源代码如下:

%RGB转YUV

Clear %清理变量空间 x = imread('lena512.BMP'); %读取图像的像素值 [width,height,dim]=size(x); %读取图像的尺寸信息 x = double(x); %转换变量类型

2 / 16

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

%方法一:元素乘

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像素点转换为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 %结束列扫描 end %结束行扫描

subplot(1,3,3),imshow(uint8(z)); %显示彩色转灰度后得到的图像

3 / 16

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

四、效果比较:

由以上三幅图像可以看出,用不同的系数与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); %读取图像的尺寸信息

4 / 16

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

%按比例缩小:k1=0.6, k2=0.75

k1=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)); %显示缩小后图像

5 / 16

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

MATLAB编程实习-3700字——计算机软件实习报告前言MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。在科学研究和工程应用中,往往要进行大量的数学计算,其中包括矩阵运算等。这些运算一般来说都难以
推荐度:
点击下载文档文档为doc格式
175i63nkx686wqu5roq73pebe0ioab00lla
领取福利

微信扫码领取福利

微信扫码分享