当前位置:文档之家› 数字图像处理课程设计 matlab

数字图像处理课程设计 matlab

数字图像处理课程设计 matlab
数字图像处理课程设计 matlab

《数字图像处理》课程设计文档

目录

一、课程设计目的 (2)

二、课程设计要求 (2)

三、课程设计的内容 (2)

四、课题分析 (3)

五、总体设计 (3)

六、具体设计 (4)

6.1、文件 (4)

6.1.1、打开 (4)

6.1.2、保存 (4)

6.1.3、打印 (4)

6.1.4、退出 (4)

6.2、直方图统计 (4)

6.2.1、R直方图 (4)

6.2.2、G直方图 (4)

6.2.3、B直方图 (4)

6.3、图像增强处里 (5)

6.3.1、直方图均衡化 (5)

6.3.2、对比度展宽 (6)

6.3.3、动态范围调整 (6)

6.3.4、空间域平滑算法 (6)

6.3.4.1、均值滤波 (7)

6.3.4.2、中值滤波 (7)

6.3.4.3、边界保持滤波 (8)

6.4、图像分割 (8)

6.4.1、均匀性度量法 (8)

6.4.2、类间最大距离法 (9)

6.4.3、局部阈值法 (9)

6.5、颜色空间转化 (9)

6..5.1、RGB转HSV (10)

6.5.2、RGB转HIS (10)

6.6、其他图像处理功能 (10)

6.6.1、锐化 (10)

6.6.2、傅里叶………………………………………………………….10\\

七、程序调试及结果分析 (11)

八、心得体会 (11)

九、参考文献 (11)

十、附录 (12)

基于MATLAB的图像处理的课程设计

一、课程设计目的

1、提高分析问题、解决问题的能力,进一步巩固数字图像处理系统中的基本原理与方法。

2、熟悉掌握一门计算机语言,可以进行数字图像的应用处理的开发设计。

二、课程设计要求

1、要求独立完成设计项目,开发工具为MATLAB,也可为C、C++、java等,

具体自选。各组长有责任督促组员完成任务并提交报告;

2、时间为4月28日~6月28日为其两个月的业余时间。

三、课程设计的内容

学习MATLAB GUI程序设计,利用MATLAB图像处理工具箱,设计和实现自己的Photoshop 。要求:按照软件工程方法,根据需求进行程序的功能分析和界面设计,给出设计详细说明。然后按照自己拟定的功能要求进行程序设计和调试。

整个系统要完成的基本功能大致如下:

1、能对图像文件(bmp、 jpg、 tiff、 gif等)进行打开、保存、另存、

打印、退出等功能操作;

2、数字图像的统计信息功能:直方图的统计及绘制;

3、数字图像的增强处理功能:

(1)直方图的均衡化

(2)对比度展宽

(3)动态范围调整

(4)空间域平滑算法的各种算法(如均值滤波、中值滤波、边界保持的滤波方法等)

4、数字图像由RGB转换成HIS空间并分别显示其分量图。

5、数字图像分割功能:

可采用两种以上方法进行图像分割。

总体设计

由于要实现的功能并不是很多,所以在排版的过程中,把各个功能都安排在目录栏上,整体安排如下图所示:

四、具体设计

6.1、文件

6.1.1、打开

为了让使用者更方便的使用,所以在设计的时候,通过对话框的形式来选择文件,选择uigetfile函数来实现,uigetfile函数显示一个打开文件对话框,该对话框自动列出当前路径下的目录和文件,由于这个GUI程序的操作对象是图像文件。

Uigetfile函数的调用格式为[name,path]=yigetfile(…), 在按下对话框中的执行按钮“打开”后,返回选择的文件名和路径,分别保存到“name”和“path”中。如果按下取消按钮或是发生错误,则返回值是0。根据返回值的情况,如果是0,则弹出提示错误的对话框,否则,通过imread函数读出图像数据,把图像数据赋值给全局变量handles.image。

6.1.2、保存

同样也通过对话框的形式来保存图像数据,通过uigetfile函数选择文件名和路径,用getimage(gca)取出坐标2变换后的图像数据保存到变量i,最后用imwrite 函数,把数据i存到指定的文件。

6.1.4、退出

退出比较简单,程序如下所示:

clc;

close all;

close(gcf);

6.1.3、打印

打印功能没能实现,将它设置为不可使用,可用如下代码实现

set(handles.print, 'Enable','off' ); %放在open_callback函数末尾

set(handles.print, 'Enable','off' );%放在two_OpeningFcn中

6.2、直方图统计

6.2.1、R直方图

由于RGB图像是三维图像,所以图像数据是一个三维数组,为了显示R

直方图像,把三维图像降为二维,且是当最后一个参数为1时是R直方

图:

x=imhist(handles.image(:,:,1)); %当然也可以选择(:,:,2) 或(:,:,3)????

imshow(y);

处理前后图片效果如下:

6.2.2、G直方图

G直方图与R直方图的程序差不多只需将数值为1的R直方图变成2即

可成为G直方图

x=imhist(handles.image(:,:,2));

6.2.3、B直方图

同理可得B直方图

x=imhist(handles.image(:,:,3));

RGB三种直方图统计图如下:

原图R直方图

G直方图B直方图

6.3、图像增强处理

6.3.1、直方图均衡化

在balance_Callback回退函数中实现直方图均衡化

每个回退函数中都要获取图片,上面的RGB直方图也一样需获取打开的图片。打开图片的为以下程序代码:

set(handles.axes2,'HandleVisibility','ON');

axes(handles.axes2);

直方图均衡化是判断是否为灰度图。用函数isrgb了来判断,不是灰度则将其转化,否则就直接用函数:

histeq(handles.image)%handles.image是获取的图片

来直方图均衡化处理图片

图片前后效果如下:

6.3.2、对比度展宽

对图像的对比度展宽刻可自己编写算法来处理,同样的,,处理结果如图:

6.3.3、动态范围调整

共图像处理功能未能实现,程序中已给出处理其图像的代码,但有错误,不能找出其错位,将其正确的处理,

原因是:nw=1./(b-a).*(h-a.*ones(sx,sy));

Error:Matrix dimensions must agree

也查过资料修改该语句,有的资料说是乘除和幂方要改成点乘点除,点幂方,这个是合理,但是改正后仍然有错,是在无能为力,

代码在后面将给出,可供参考。

6.3.4、空间域平滑算法

6.3.4.1、均值滤波

经常用到的噪声有两种,高斯噪声,椒盐噪声,可以通过以下两个函数来

实现:

y=imnoise(handles.img,'gaussian',p1,p2);%高斯噪声

y=imnoise(x,'salt & pepper',p1); %椒盐噪声

均值滤波中可对高斯滤波,也可以对椒盐滤波,设计过程中采用其一种图片进行处理。但两种处理的效果就不同,对高斯噪声处理的

效果更加明显

均值滤波是一种采取平均灰度值的方法进行滤波,用imnoise获得噪声的图片。这个函数可获得高斯噪声,亦可获得椒盐噪声。在采用函数conv2进行均值处理,处理前后的图片比较如下:

6.3.4.2、中值滤波

中值滤波同均值滤波的程序差不多,只是进行滤波的原理不同,则采用不同的函数进行代替,用以下函数可进行中值滤波处理:

I = imnoise(handles.image,'salt & pepper', 0.02); imshow(I);

j=medfilt2(I);

前后图片效果如下:

6.3.4.3、边界保持滤波

原理不同,采用knn 函数是处理边界保持滤波的,程序代码的形式跟前两种滤波差不多:

I = imnoise(handles.image,'salt & pepper', 0.02); imshow(I); j=knn2(I);

前后图片效果如下:

6.4、 图像分割:

图象分割是按照某些特性(如灰度级,频谱,颜色,纹理等)将图象划分成一些区域,在这些区域内其特性是相同的或者说是均匀的,两个相邻区域彼此特性则是不同的,其间存在着边缘或边界

6.4.1、均匀性度量法

当图像被分为目标物和背景两个类时,属于同一类别的像素值分布方差最小,也即具有均匀性。

给定一初始阈值Th=Th0,将图像分为C1和C2两类 分别计算两类中的方差 分别计算两类在图像中的分布概率

选择最佳阈值 Th=Th*, 将图像分为C1和C2两类,满足

均匀性度量方法的处理结果:

22

21σσ

6.4.2、类间最大距离法.

采用最佳阈值分割后,两类之间的差异最大,且差异采用两类中心与阈值间的距离差度量

给定一初始阈值Th=Th0,将图像分为C1和C2两类 分别计算两类的灰度均值 计算相对距离度量值 s

选择最佳阈值 Th=Th*, 将图像分为C1和C2两类

图片效果:

6.4.3、局部阈值法

不均匀照射,物体背景对比明显, 不能只使用一门限 灰度级校正。

图象分成小块,选择局部门限

局部阈值法的处理前后结果:

6.5、 颜色空间转化

6..5.1、RGB 转HSV

2

μ和}max {|*S S Th Th

=

=

色彩空间相互转化:

其中有很多种色彩空间,这里只介绍两种转换关系:

RGB转HSV,图像处理中有专门的函数将其进行转化,即rgb2hvs函数转化图像前后对比如下:

6.5.2、RGB转HIS

首先获取图像的RGB 3个通道

R=w(:,:,1);

G=w(:,:,2);

B=w(:,:,3);

观察HSI通道图像

因系统没有rgb2hsi函数,只有rgb2hsv函数,可自己编写程序实现算法

,用一个循环处理,分别得到HIS的色度,饱和度以及强度图,代码在后面实现图形处理效果如下:

6.6、其他图像处理功能

6.6.1、锐化

6.6.2、傅里叶

这两个是附加的图像处理功能,在次不做过多的说明,可向大家看看处

理图像结果进行对比一下,看看效果,可在后面附上代码

锐化. 四种傅里叶变

参考文献

【1】郑阿奇,曹戈,赵阳.MATLAB实用教程[M].北京:电子工业出版社

【2】精通matlab6[1].5_(北航_张志涌).pdf

【3】MATLAB 编程(第二版)

MATLAB Programming for Engineers Second Edition)

Stephen J. Chapman 著邢树军郑碧波译

【4】相关的MATLAB图像处理函数

五、附录

function varargout = two(varargin)

% Begin initialization code - DO NOT EDIT

gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ...

'gui_Singleton',

gui_Singleton, ...

'gui_OpeningFcn',

@two_OpeningFcn, ...

'gui_OutputFcn',

@two_OutputFcn, ...

'gui_LayoutFcn',

[] , ...

'gui_Callback', []);

if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1});

end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

gui_mainfcn(gui_State, varargin{:});

end

% End initialization code - DO NOT EDIT

% --- Executes just before erzhi is made visible.

function two_OpeningFcn(hObject, eventdata, handles, varargin)

% This function has no output args, see OutputFcn.

---------------------------------------------------------

%接下来是菜单的程序

---------------------------------------------------------

function file_Callback(hObject, eventdata, handles)

--------------------------------------------------------

%文件打开程序

function open_Callback(hObject, eventdata, handles)

[name,path]=uigetfile({'*.bmp'},'载入图像');

if isequal(name,0)|isequal(path,0)

errordlg('没有选中文件','出错');

return;

else

x=imread([path,name]);

axes(handles.axes1);

imshow(x);

handles.img=x;

handles.noise_img=x;

guidata(hObject,handles)

end

---------------------------------------------------

function save_Callback(hObject, eventdata, handles)

%文件保存

[filename,pathname] = uiputfile('*.bmp','图片保存为');

if isequal([filename,pathname],[0,0])

errordlg('没有保存','出错');

return;

else

file=strcat(pathname,filename);

(handles.axes2);

i=getimage(gca);

imwrite(i,file);

end

-----------------------------------------------------

function exit_Callback(hObject, eventdata, handles)

clc;

close all;

close(gcf);

---------------------------------------------------------

% 直方图

------------------------------------------------------

function zhf_Callback(hObject, eventdata, handles)

-------------------------------------------------

function red_Callback(hObject, eventdata, handles)

% R直方图

data (see GUIDA TA)

set(handles.axes2,'HandleVisibility','ON');

axes(handles.axes2);

x=imhist(handles.image(:,:,1));

x1=x(1:10:256);

horz=1:10:256;

bar(horz,x1);

set(handles.axes2,'xtick',0:50:255);

------------------------------------------------------

function green_Callback(hObject, eventdata, handles)

% G直方图

set(handles.axes2,'HandleVisibility','ON');

axes(handles.axes2);

x=imhist(handles.image(:,:,2));

x1=x(1:10:256);

horz=1:10:256;

bar(horz,x1);

set(handles.axes2,'xtick',0:50:255);

------------------------------------------------------

function blue_Callback(hObject, eventdata, handles)

% B直方图

set(handles.axes2,'HandleVisibility','ON');

axes(handles.axes2);

%if isrgb(handles.img)

x=imhist(handles.image(:,:,3));

x1=x(1:10:256);

horz=1:10:256;

bar(horz,x1);

set(handles.axes2,'xtick',0:50:255);

-----------------------------------------------------

%图像增强处理

--------------------------------------------------------- function zhf_Callback(hObject, eventdata, handles) -------------------------------------------------

function balance_Callback(hObject, eventdata, handles)

%直方图均衡化

set(handles.axes2,'HandleVisibility','ON');

axes(handles.axes2);

if isrgb(handles.image)

a=histeq(handles.image(:,:,1));

b=histeq(handles.image(:,:,2));

c=histeq(handles.image(:,:,3));

k(:,:,1)=a;

k(:,:,2)=b;

k(:,:,3)=c;

imshow(k);

else

h=histeq(handles.image);

imshow(h);

end

function zq_Callback(hObject, eventdata, handles)

----------------------------------------------------------------- function duibidu_Callback(hObject, eventdata, handles)

%对比度展宽

set(handles.axes2,'HandleVisibility','ON');

axes(handles.axes2);

h=im2double(handles.image);

[sx,sy]=size(h);

nw=h.^0.3;

subplot(2,2,1);

imshow(h);

title('original');

subplot(2,2,2);

imshow(nw);

title('r=0.4');

subplot(2,2,3);

imshow(h.^0.5);

title('r=0.7');

subplot(2,2,4);

imshow(h.^2);

title('r=3');

--------------------------------------------------------------------

function dongtai_Callback(hObject, eventdata, handles)

%动态调整范围

set(handles.axes2,'HandleVisibility','ON');

axes(handles.axes2);

h=im2double(handles.image);

a=0.01;

b=0.35;

[sx,sy]=size(h);

[w,n]=find(h(:)<=a);

h(n)=0;

[w1,n1]=find(h(:)>b);

h(n1)=1;

nw=1./(b-a).*(h-a.*ones(sx,sy));

subplot(1,2,1);

imshow(h);

subplot(1,2,2);

imshow(nw);

----------------------------------------------------------------- %空间域平滑算法

function pinghua_Callback(hObject, eventdata, handles)

-----------------------------------------------------------------

function junzhi_Callback(hObject, eventdata, handles)

%均值滤波

h=[1 1 1;1 1 1;1 1 1];

h=h/9;

set(handles.axes2,'HandleVisibility','ON');

axes(handles.axes2);

x=imnoise(handles.image,'gaussian',0,0.02);

imshow(x);

j=conv2(x,h);

figure,imshow(j,[]);

--------------------------------------------------------------------

function zhongzhi_Callback(hObject, eventdata, handles)

%中值滤波

set(handles.axes2,'HandleVisibility','ON');

axes(handles.axes2);

% I=imnoise(I,'gaussian',0,0.02);

I = imnoise(handles.image,'salt & pepper',

0.02);%

j=medfilt2(I);

figure,imshow(j,[]);

--------------------------------------------------------------------

function bianjie_Callback(hObject, eventdata, handles)

% 边界保持滤波

set(handles.axes2,'HandleVisibility','ON');

axes(handles.axes2);

% I=imnoise(I,'gaussian',0,0.02);

I = imnoise(handles.image,'salt & pepper',

0.02);

imshow(I);

j=knn2(I);

figure,imshow(j,[]);

-----------------------------------------------------------------

--------------------------------------------------------------------

function junyunxing_Callback(hObject, eventdata, handles)

%均与性度量法

set(handles.axes2,'HandleVisibility','ON');

axes(handles.axes2);

v=double(handles.image);

[sx,sy]=size(v);

num=sx*sy;

t=[];

for th=6:254

[r1,c1]=find(v(:)>=th);

[r2,c2]=find(v(:)

if(length(r1)~=0 & length(c1)~=0 )

L1=v(r1);

else

L1=[];

end

if(length(r2)~=0 & length(c2)~=0 )

L2=v(r2);

else

L2=[];

end

m1=mean(L1(:)); m2=mean(L2(:));

Var1=sum((L1(:)-m1).^2);Var2=sum((L2(:)-m2 ).^2);

Var1=var(L1(:));Var2=var(L2(:));

P1=length(L1(:))/num;

P2=length(L2(:))/num;

t=[t,P1*Var1+P2*Var2];

end

[c,l]=min(t);

B=v;

[r1,c1]=find(v(:)>=l+5);

[r2,c2]=find(v(:)

B(r1)=255; B(r2)=0;

imshow(uint8(B));

%

--------------------------------------------------------------------

function jubuyuzhi_Callback(hObject, eventdata, handles)

%局部阈值法

set(handles.axes2,'HandleVisibility','ON');

axes(handles.axes2);

v=rgb2gray(handles.image);

imshow(v); R=zeros(size(v));

H = FSPECIAL('gaussian',9,2.4);

v = imfilter(v,H);

t=graythresh(v); t=t*255;

[c,l]=find( v(:)>t);

R(c)=1;

[x,y]=size(R); q=R;

for i=10:x-10

for j=10:y-10

if R(i,j)==0

t=[R(i-1,j-1),R(i-1,j),R(i-1,j+1),R(i,j-1),R(i,j+1),R(i+1 ,j-1),R(i+1,j),R(i+1,j+1)];

if sum(t)==0

q(i,j)=1;

end

end

end

end

figure, imshow(q,[]);

--------------------------------------------------------------------

function leijianzuidajuli_Callback(hObject, eventdata, handles)

%类间最大法

set(handles.axes2,'HandleVisibility','ON');

axes(handles.axes2);

X=rgb2gray(handles.image);

[r,c]=size(X);

figure (1)

subplot(1,2,1)

imshow(X)

R=zeros(1,256);

for i=50:150

Xi0=X0<=i;

N0=sum(sum(Xi0));

Xm0=X0(Xi0);

u0=sum(Xm0)/N0;

Xi1=X0>i;

N1=sum(sum(Xi1));

Xm1=X0(Xi1);

u1=sum(Xm1)/N1;

R(i+1)=(u1-i)*(i-u0)/((u1-u0)^2);

end

Th=find(R==max(R(51:151)))-1

X2=zeros(r,c);

for i=1:r

for j=1:c

X2(i,j)=X0(i,j)>Th;

end

end

subplot(2,2,2)

imshow(X2)

----------------------------------------------------------------- %颜色空间转化

--------------------------------------------------------------------

function hsv_Callback(hObject, eventdata, handles)

%RGB转HSV

set(handles.axes2,'HandleVisibility','ON');

axes(handles.axes2);

hv=rgb2hsv(handles.image);

subplot(2,2,1);

imshow(hv);

title('RGB?? HSV');

%RGB=reshape(ones(64,1)*reshape(jet(64),1,1 92),[64,64,3]); ??

H=hv(:,:,1); ?

S=hv(:,:,2);

V=hv(:,:,3);

subplot(2,2,2);

imshow(H) ;

title('? ?§?§ ');

subplot(2,2,3);

imshow(S);

title('? ?§?§ ');

subplot(2,2,4);

imshow(V);

title('? ?§?§ ');

--------------------------------------------------------------------

function HIS_Callback(hObject, eventdata, handles)

%RGB转HSI

set(handles.axes2,'HandleVisibility','ON');

axes(handles.axes2);

W=im2double(handles.image);%获得double 型的图形矩阵

[m,n,q]=size(W);

R=W(:,:,1);

G=W(:,:,2);

B=W(:,:,3);

% 改变通道来观察图像

H=zeros(m,n);

S=H;

for i1=1:m

for i2=1:n

numerator=0.5*(R(i1,i2)-G(i1,i2)+R(i1,i2)-B(i1,i2));

denominator=sqrt((R(i1,i2)-G(i1,i2))^2+(R(i1,i2)-B(i 1,i2))*(G(i1,i2)-B(i1,i2)));

theta=acos(numerator/denominator)*180/pi;

if(B(i1,i2)<=G(i1,i2))

H(i1,i2)=theta;

else

H(i1,i2)=360-theta;

end

min1=min(R(i1,i2),G(i1,i2));

min1=min(B(i1,i2),min1);

S(i1,i2)=1-3/(R(i1,i2)+G(i1,i2)+B(i1,i2))*min1;

end

end

I=(R+G+B)/3;

figure,subplot(1,3,1),imshow(H,[]),title('色度图H');

set(gcf,'outerposition',get(0,'screensize'));

set(gcf,'NumberTitle','off','Name','HSI通道图像');

subplot(1,2,2),imshow(S),title('饱和度图S');

subplot(1,2,3),imshow(I),title('强度图?I');

%

----------------------------------------------------------------- %其他图像处理

---------------------------------------------------------------------------

function fly_Callback(hObject, eventdata, handles)

%傅里叶变化

set(handles.axes2,'HandleVisibility','ON');

axes(handles.axes2);

[m,n]=size(handles.image);

d=zeros(m,n);

d(60:100,60:100)=1;

w=fft2(d);

w1=fftshift(w);

[sx,sy]=size(d);

subplot(2,2,1); imshow(d);

subplot(2,2,2); imshow(abs(w1));

for i=1:sx

t= fft(d(i,:));

len=length(t)/2;

F1(i,:)=[(t(len+1:end)),t(1:len)];

end

for i=1:sy

F2=fft(F1(:,i));

len=length(F2)/2;

F(:,i)=[(F2(len+1:end));F2(1:len)];

end

subplot(2,2,3);

imshow(abs(F1));

subplot(2,2,4);

imshow((abs(F)));

function ruihua_Callback(hObject, eventdata, handles)

%锐化

k=2;

h1=[-1 0 1;-k 0 k;-1 0 1];

h2=[1 k 1;0 0 0;-1 -k -1];

set(handles.axes2,'HandleVisibility','ON');

axes(handles.axes2);

I=rgb2gray(handles.image);

subplot(121);imshow(I);

J1(:,:)=conv2(I(:,:),h1);

J2(:,:)=conv2(I(:,:),h2);

J=abs(J1)+abs(J2);

subplot(122);

imshow((J),[0 255]);

MATLAB实验报告

MATLAB程序设计语言 实 验 报 告 专业及班级:电子信息工程 姓名:王伟 学号:1107050322 日期 2013年6月20日

实验一 MATLAB 的基本使用 【一】 实验目的 1.了解MATALB 程序设计语言的基本特点,熟悉MATLAB 软件的运行环境; 2.掌握变量、函数等有关概念,掌握M 文件的创建、保存、打开的方法,初步具备将一般数学问题转化为对应计算机模型处理的能力; 3.掌握二维图形绘制的方法,并能用这些方法实现计算结果的可视化。 【二】 MATLAB 的基础知识 通过本课程的学习,应基本掌握以下的基础知识: 一. MATLAB 简介 二. MATLAB 的启动和退出 三. MATLAB 使用界面简介 四. 帮助信息的获取 五. MATLAB 的数值计算功能 六. 程序流程控制 七. M 文件 八. 函数文件 九. MATLAB 的可视化 【三】上机练习 1. 仔细预习第二部分内容,关于MATLAB 的基础知识。 2. 熟悉MATLAB 环境,将第二部分所有的例子在计算机上练习一遍 3. 已知矩阵???? ??????=??????????=123456789,987654321B A 。求A*B ,A .* B ,比较二者结果是否相同。并利用MATLAB 的内部函数求矩阵A 的大小、元素和、长度以 及最大值。 程序代码: >> A=[1 2 3;4 5 6;7 8 9]; >> B=[9 8 7;6 5 4;3 2 1]; >> A*B ans =

30 24 18 84 69 54 138 114 90 >> A.*B ans = 9 16 21 24 25 24 21 16 9 两者结果不同 >> [m,n]=size(A) m = 3 n = 3 >> b=sum(A) b = 12 15 18 >> a=length(A) a = 3 >>max(A) ans =

matlab课程教学设计(简单计算器的设计)

matlab课程设计报告 题目简易计算器的设计 学院电子信息工程学院 专业电子信息 学生姓名和学号 指导教师

一、选题目的及意义 GUI的广泛应用是当今计算机发展的重大成就之一,它极大地方便了非专业用户的使用。人们从此不再需要死记硬背大量的命令,取而代之的是可以通过窗口、菜单、按键等方式来方便地进行操作,而在matlab有很简单的gui设计工具,我们可以通过这个工具轻松地构建我们想要的程序,从而实现与用户的信息交互。本次课程设计是使用了matlab中的guide生成了简单的计算器程序。 二、源代码 function varargout = Calculator(varargin) %Simple Calculator %@Anhui University % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @Calculator_OpeningFcn, ... 'gui_OutputFcn', @Calculator_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else

matlab课程设计题目

课题一: 连续时间信号和系统时域分析及MATLAB实现 课题要求: 深入研究连续时间信号和系统时域分析的理论知识。利用MATLAB强大的图形处理功能、符号运算功能以及数值计算功能,实现连续时间信号和系统时域分析的仿真波形。 课题内容: 一、用MATLAB实现常用连续时间信号的时域波形(通过改变参数,分析其时域特性)。 1、单位阶跃信号, 2、单位冲激信号, 3、正弦信号, 4、实指数信号, 5、虚指数信号, 6、复指数信号。 二、用MATLAB实现信号的时域运算 1、相加, 2、相乘, 3、数乘, 4、微分, 5、积分 三、用MATLAB实现信号的时域变换(参数变化,分析波形变化) 1、反转, 2、使移(超时,延时), 3、展缩, 4、倒相, 5、综合变化 四、用MATLAB实现信号简单的时域分解 1、信号的交直流分解, 2、信号的奇偶分解 五、用MATLAB实现连续时间系统的卷积积分的仿真波形 给出几个典型例子,对每个例子,要求画出对应波形。 六、用MATLAB实现连续时间系统的冲激响应、阶跃响应的仿真波形。 给出几个典型例子,四种调用格式。 七、利用MATLAB实现连续时间系统对正弦信号、实指数信号的零状态响应的仿真波形。 给出几个典型例子,要求可以改变激励的参数,分析波形的变化。 课题二: 离散时间信号和系统时域分析及MATLAB实现。 课题要求: 深入研究离散时间信号和系统时域分析的理论知识。利用MATLAB强大的图

形处理功能、符号运算功能以及数值计算功能,实现离散时间信号和系统时域分析的仿真波形。 课题内容: 一、用MATLAB绘制常用信号的时域波形(通过改变参数分析其时域特性) 1、单位序列, 2、单位阶跃序列, 3、正弦序列, 4、离散时间实指数序列, 5、离散时间虚指数序列, 6、离散时间复指数序列。 二、用MATLAB实现信号的时域运算 1、相加, 2、相乘, 3、数乘。 三、用MATLAB实现信号的时域变换(参数变化,分析波形的变化) 1、反转, 2、时移(超时,延时), 3、展缩, 4、倒相。 四、用MATLAB实现离散时间系统卷积和仿真波形 给出几个典型例子,对每个例子要求画出e(k),h(k),e(i),h(i),h(-i),Rzs(k)波形。 五、用MATLAB实现离散时间系统的单位响应,阶跃响应的仿真波形 给出几个典型例子,四中调用格式。 六、用MATLAB实现离散时间系统对实指数序列信号的零状态响应的仿真波形 给出几个典型例子,要求可以改变激励的参数,分析波形的变化。 课题三: 连续时间信号傅里叶级数分析及MATLAB实现。 课题要求: 深入研究连续时间信号傅里叶级数分析的理论知识,利用MATLAB强大的图形处理功能,符号运算功能以及数值计算功能,实现连续时间周期信号频域分析的仿真波形。 课题内容: 一、用MATLAB实现周期信号的傅里叶级数分解与综合 以周期矩形波信号为例,绘出包含不同谐波次数的合成波形,观察合成波形与原矩形 波形之间的关系及吉布斯现象。

数字图像处理 课程设计报告

数字图像处理 课程设计报告 姓名: 学号: 班级: 设计题目:图像处理 教师:赵哲老师 提交日期: 12月29日

一、设计内容: 主题:《图像处理》 详细说明:对图像进行处理(简单滤镜,模糊,锐化,高斯模糊等),对图像进行处理(上下对称,左右对称,单双色显示,亮暗程度调整等),对图像进行特效处理(反色,实色混合,色彩平衡,浮雕效果,素描效果,雾化效果等), 二、涉及知识内容: 1、二值化 2、各种滤波 3、算法等 三、设计流程图 四、实例分析及截图效果: 运行效果截图: 第一步:读取原图,并显示 close all;clear;clc; % 清楚工作窗口clc 清空变量clear 关闭打开的窗口close all I=imread(''); % 插入图片赋给I imshow(I);% 输出图I I1=rgb2gray(I);%图片变灰度图 figure%新建窗口 subplot(321);% 3行2列第一幅图 imhist(I1);%输出图片

title('原图直方图');%图片名称 一,图像处理模糊 H=fspecial('motion',40); %% 滤波算子模糊程度40 motion运动 q=imfilter(I,H,'replicate');%imfilter实现线性空间滤波函数,I图经过H滤波处理,replicate反复复制q1=rgb2gray(q); imhist(q1); title('模糊图直方图'); 二,图像处理锐化 H=fspecial('unsharp');%锐化滤波算子,unsharp不清晰的 qq=imfilter(I,H,'replicate'); qq1=rgb2gray(qq); imhist(qq1); title('锐化图直方图'); 三,图像处理浮雕(来源网络) %浮雕图 l=imread(''); f0=rgb2gray(l);%变灰度图 f1=imnoise(f0,'speckle',; %高斯噪声加入密度为的高斯乘性噪声 imnoise噪声污染图像函数 speckle斑点 f1=im2double(f1);%把图像数据类型转换为双精度浮点类型 h3=1/9.*[1 1 1;1 1 1;1 1 1]; %采用h3对图像f2进行卷积滤波 f4=conv2(f1,h3,'same'); %进行sobel滤波 h2=fspecial('sobel'); g3=filter2(h2,f1,'same');%卷积和多项式相乘 same相同的 k=mat2gray(g3);% 实现图像矩阵的归一化操作 四,图像处理素描(来源网络) f=imread(''); [VG,A,PPG] = colorgrad(f); ppg = im2uint8(PPG); ppgf = 255 - ppg; [M,N] = size(ppgf);T=200; ppgf1 = zeros(M,N); for ii = 1:M for jj = 1:N if ppgf(ii,jj)

MATLAB实验报告实验二

实验二 MATLAB矩阵及其运算 学号:3121003104 姓名:刘艳琳专业:电子信息工程1班日期:2014.9.20 一实验目的 1、掌握Matlab数据对象的特点以及数据的运算规则。 2、掌握Matlab中建立矩阵的方法以及矩阵处理的方法。 3、掌握Matlab分析的方法。 二实验环境 PC_Windows 7旗舰版、MATLAB 7.10 三实验内容 4、1. (1)新建一个.m文件,验证书本第15页例2-1; (2)用命令方式查看和保存代码中的所有变量;

(3)用命令方式删除所有变量; (4)用命令方式载入变量z。 2. 将x=[4/3 1.2345e-6]在以下格式符下输出:短格式、短格式e方式、长格式、长格式e方式、银行格式、十六进制格式、+格式。 短格式 短格式e 长格式

长格式e方式 银行格式 十六进制格式 3.计算下列表达式的值 (1)w=sqrt(2)*(1+0.34245*10^(-6)) (2)x=(2*pi*a+(b+c)/(pi+a*b*c)-exp(2))/(tan(b+c)+a) a=3.5;b=5;c=-9.8; (3)y=2*pi*a^2*((1-pi/4)*b-(0.8333-pi/4)*a) a=3.32;b=-7.9; (4)z=0.5*exp(2*t)*log(t+sqrt(1+t*t)) t=[2,1-3i;5,-0.65];

4. 已知A=[1 2 3 4 5 ;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20],对其进行如下操作:(1)输出A在[ 7, 10]范围内的全部元素; (2)取出A的第2,4行和第1,3,5列; (3)对矩阵A变换成向量B,B=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20]; (4)删除A的第2,3,4行元素; (1) (2)

MATLAB课程设计报告

华东交通大学MATLAB程序设计报告书 课题名称:基于MATLAB的粒子群优化算法的实现 姓名: 学号:20160280800014 专业:控制科学与工程 2016年 11月 20日

基于MATLAB的粒子群优化算法的实现 一、课程选题目的 本次课程设计的课题为《基于MATLAB的粒子群优化算法的实现》,主要为学会运用MATLAB对实际算法编程,加深对粒子群优化算法的理解,并为今后熟练使用MA TLAB进行系统的分析仿真和设计奠定基础。数值计算分析可以帮助更深入地理解理论知识,并为将来使用MA TLAB进行各领域数值分析分析和实际应用打下基础。 此次课程主要是为了进一步熟悉对MATLAB软件的使用,以及学会利用MA TLAB对数值运算这种实际问题进行处理,将理论应用于实际,加深对它的理解。 二、粒子群优化算法原理 优化是科学研究、工程技术和经济管理等领域的重要研究工具。它所研究的问题是讨论在众多的方案中寻找最优方案。例如,工程设计中怎样选择设计参数,使设计方案既满足设计要求又能降低成本;资源分配中,怎样分配有限资源,使分配方案既能满足各方面的基本要求,又能获得好的经济效益。在人类活动的各个领域中,诸如此类,不胜枚举。优化这一技术,正是为这些问题的解决,提供理论基础和求解方法,它是一门应用广泛、实用性很强的科学。近十余年来,粒子群优化算法作为群体智能算法的一个重要分支得到了广泛深入的研究,在路径规划等许多领域都有应用。 2.1 粒子群优化算法的起源 粒子群优化(PSO)算法是由Kennedy和Eberhart于1995年用计算机模拟鸟群觅食这一简单的社会行为时,受到启发,简化之后而提出的。 设想这样一个场景:一群鸟随机的分布在一个区域中,在这个区域里只有一块食物。所有的鸟都不知道食物在哪里。但是他们知道当前的位置离食物还有多远。那么找到食物的最优策略是什么呢。最简单有效的方法就是追寻自己视野中目前离食物最近的鸟。如果把食物当作最优点,而把鸟离食物的距离当作函数的适应度,那么鸟寻觅食物的过程就可以当作一个函数寻优的过程。鱼群和鸟群的社会行为一直引起科学家的兴趣。他们以特殊的方式移动、同步,不会相互碰撞,整体行为看上去非常优美。生物学家CargiReynolds提出了一个非常有影响的鸟群聚集模型。在他的模拟模型boids中,每一个个体遵循:避免与邻域个体相冲撞、匹配邻域个体的速度、试图飞向感知到的鸟群中心这三条规则形成简单的非集中控制算法驱动鸟群的聚集,在一系列模拟实验中突现出了非常接近现实鸟群聚集行为的现象。该结果显示了在空中回旋的鸟组成轮廓清晰的群体,以及遇到障碍物时鸟群的分裂和再度汇合过程。由此受到启发,经过简化提出了粒子群优化算法。 2.2粒子群优化算法的原理 在粒子群优化算法中,每个优化问题的潜在解都是搜索空间中的一只鸟,称之为“粒子”。所有的粒子都有一个由被优化的函数决定的适应值,每个粒子还有一个速度决定他们飞翔的方向和距离。然后粒子们就追随当前的最优粒子在解空间中搜索。优化开始时先初始化为一群随机粒子(随机解)。然后通过迭代找到最优解。在每一次迭代中,粒子通过跟踪两个极值来更新自己。第一个极值就是整个种群目前找到的最优解。这个极值是全局极值。另外也可以不用整个种群而只是用其中一部分作为粒子的邻居,那么在所有邻居中的极值就是局部极值。第二个极值是粒子本身所找到的最优解,称为个体极值。这是因为粒子仅仅通过跟踪全局极值或者局部极值来更新位置,不可能总是获得较好的解。这样在优化过程中,粒子在追随全局极值或局部极值的同时追随个体极值则圆满的解决了这个问题。这就是粒子群优化

MATLAB课设报告

课程设计任务书 学生姓名:董航专业班级:电信1006班 指导教师:阙大顺,李景松工作单位:信息工程学院 课程设计名称:Matlab应用课程设计 课程设计题目:Matlab运算与应用设计5 初始条件: 1.Matlab6.5以上版本软件; 2.课程设计辅导资料:“Matlab语言基础及使用入门”、“Matlab及在电子信息课程中的应 用”、线性代数及相关书籍等; 3.先修课程:高等数学、线性代数、电路、Matlab应用实践及信号处理类相关课程等。 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 1.课程设计内容:根据指导老师给定的7套题目,按规定选择其中1套完成; 2.本课程设计统一技术要求:研读辅导资料对应章节,对选定的设计题目进行理论分析, 针对具体设计部分的原理分析、建模、必要的推导和可行性分析,画出程序设计框图,编写程序代码(含注释),上机调试运行程序,记录实验结果(含计算结果和图表),并对实验结果进行分析和总结。具体设计要求包括: ①初步了解Matlab、熟悉Matlab界面、进行简单操作; ②MATLAB的数值计算:创建矩阵矩阵运算、多项式运算、线性方程组、数值统计; ③基本绘图函数:plot, plot3, mesh, surf等,要求掌握以上绘图函数的用法、简单图形 标注、简单颜色设定等; ④使用文本编辑器编辑m文件,函数调用; ⑤能进行简单的信号处理Matlab编程; ⑥按要求参加课程设计实验演示和答辩等。 3.课程设计说明书按学校“课程设计工作规范”中的“统一书写格式”撰写,具体包括: ①目录; ②与设计题目相关的理论分析、归纳和总结; ③与设计内容相关的原理分析、建模、推导、可行性分析; ④程序设计框图、程序代码(含注释)、程序运行结果和图表、实验结果分析和总结; ⑤课程设计的心得体会(至少500字); ⑥参考文献(不少于5篇); ⑦其它必要内容等。 时间安排:1.5周(分散进行) 参考文献: [1](美)穆尔,高会生,刘童娜,李聪聪.MA TLAB实用教程(第二版) . 电子工业出版社,2010. [2]王正林,刘明.精通MATLAB(升级版) .电子工业出版社,2011. [3]陈杰. MA TLAB宝典(第3版) . 电子工业出版社,2011. [4]刘保柱,苏彦华,张宏林. MATLAB 7.0从入门到精通(修订版) . 人民邮电出版社,2010. 指导教师签名:年月日 系主任(或责任教师)签名:年月日

电子科技大学-数字图像处理-课程设计报告

电子科技大学 数字图像处理课程设计 课题名称数字图像处理 院(系)通信与信息工程学院 专业通信工程 姓名 学号 起讫日期 指导教师

2015年12月15日 目录 摘要: (03) 课题一:图像的灰度级分辨率调整 (04) 课题二:噪声的叠加与频域低通滤波器应用 (06) 课题三:顶帽变换在图像阴影校正方面的应用 (13) 课题四:利用Hough变换检测图像中的直线 (15) 课题五:图像的阈值分割操作及区域属性 (20) 课题六:基于MATLAB?的GUI程序设计 (23)

结束语: (36) 参考文献: (37)

基于MATLAB?的数字图像处理课题设计 摘要 本文首先对数字图像处理的相关定义、概念、算法与常用变换进行了介绍;并通过七个课题实例,借助MATLAB?的图像处理工具箱(Computer Vision System Toolbox)对这些案例逐一实现,包括图像的灰度值调整、图像噪声的叠加、频域低通滤波器、阈值分割、Hough变换等,常用的图像变化与处理;然后通过MATLAB?的GUI程序设计,对部分功能进行模块化整合,设计出了数字图像处理的简易软件;最后给出了软件的帮助文件以及该简易程序的系统结构和m代码。 关键词:灰度值调整噪声图像变换 MATLAB? GUI设计

课题一:图像的灰度级分辨率调整 设计要求: 128,64,32,16,8,4,2,并在同一个figure窗将图像的灰度级分辨率调整至{} 口上将它们显示出来。 设计思路: 灰度级分辨率又称色阶,是指图像中可分辨的灰度级的数目,它与存储灰度级别所使用的数据类型有关。由于灰度级度量的是投射到传感器上的光辐射值的强度,所以灰度级分辨率又称为辐射计量分辨率。随着图像灰度级分辨率的的逐渐降低,图像中所包含的颜色数目将变得越来越少,从而在颜色维度造成图像信息量的退化。 MATLAB?提供了histeq函数用于图像灰度值的改变,调用格式如下: J = histeq(I,n) 其中J为变换后的图像,I为输入图像,n为变换的灰度值。依次改变n的值为 128、64、32、16、8、4、2 就可以得到灰度值分辨率为128、64、32、16、8、4、2 的输出图像。利用MATLAB?的subplot命令可以将不同灰度的图像放在同一个figure中方便对比。 课题实现: 该思路的MATLAB?源代码如下: in_photo=imread('lena.bmp'); %读入图片“lena.bmp”,位置在matlab当前工作区路径下D:\TempProject\Matlab\Works for i = [128,64,32,16,8,4,2] syms(['out_photo',num2str(i)]); %利用for循环定义7个变量,作为不同灰度值分辨率的输出变量 eval(['out_photo',num2str(i), '=histeq(in_photo,i)',';']); %histeq函数用于改变图像灰度值,用eval函数给变量循环赋值

Matlab课程设计报告

自控系统仿真软件课程设计报告 MATLAB 设计题目:牛顿摆球 姓名: 学号: 院系: 班级:1203 指导教师: 2014年12月20日

一.课程设计目的 1、熟悉课程设计的基本流程; 2、掌握MATLAB语法结构及调试方法; 3、熟悉MATLAB函数调用,熟练二维画图; 4、掌握MATLAB语言在控制方面的运用; 5、学会用MATLAB进行基本仿真; 6、掌握MATLAB编程技巧,提高编程水平。 二.系统分析 1.题目的描述: (1)牛顿摆球原理描述 五个质量相同的球体由吊绳固定,彼此紧密排列。当摆动最右侧的球并在回摆时碰撞紧密排列的另外四个球,最左边的球将被弹出,并仅有最左边的球被弹出。当然此过程也是可逆的,当摆动最左侧的球撞击其它球时,最右侧的球会被弹出。当最右侧的两个球同时摆动并撞击其他球时,最左侧的两个球会被弹出。同理相反方向同样可行,并适用于更多的球。 为了更接近现实,在这里我将考虑重力及空气阻力的影响,摆球将不会永无止境的运动下去,由于外界因素的影响,摆球运动一段时间后将回归静止状态。(2)通过MATLAB动画程序制作软件,实现下述过程 当运行程序时,把最右边的小球拉到一定的高度放下,让其碰撞其余四个小球,仅让最左边的小球被弹出,当最左边小球回摆碰撞其它球时,最右边小球又被弹出,如此循环。由于是非理想条件下,摆球的摆动幅度会随摆动次数的增加越来越小,直到静止。 时间停顿两秒,把右边两小球一起拉到一定高度放下,让其碰撞其余三个球,同样仅让左边两球被弹出,当球回摆再次碰撞时,最右边两球又被同时弹出,如此循环,因为外界因素的影响,最终五个球都会静止下来。 (3)整个实验看似简单,但要在MATLAB上完成这样一个动画过程,还是需要下点功夫,克服困难的。经过自己的努力,终于实现了整个过程,这也是一种不小的收获。 2.设计要求: (1)能够实现有阻尼摆动,即摆幅随摆动次数增加越来越小,直到静止。(2)能够让摆球弧线摆动。 三.系统设计 1.系统设计过程 (1)通过函数axis建立坐标系 (2)在坐标系范围内通过函数line画各个支架 (3)通过函数title添加标题“动量守恒实验”、函数text添加标注“牛顿摆球” (4)通过函数line画出五个球,并设定其初始位置,颜色,大小,线条的擦拭方式

数字图象处理课程设计

课程设计 课程名称___ 数字图像处理课程设计__ 题目名称一个简单的“photoshop”软件 学生学院信息工程学院 专业班级电子信息工程 学号 学生姓名 指导老师 2014年 1 月 3 日

一、课程设计题目 设计内容及要求: 1、独立设计方案,实现对图像的3种处理。 2、利用VC++实现软件框架:有操作菜单、能显示某项操作前后的图像。 3、查找相关算法,至少实现3种功能,比如:灰度增强、直方图显示、浮雕等等(底片化、二值化及平滑等实验内容不计算在内)。 4、将实验结果与其他软件实现的效果进行比较、分析。总结设计过程所遇到的问题。 二、课程设计目的 数字图像处理,就是用数字计算机及其他有关数字技术,对图像进行处理,以达到预期的目的。随着计算机的发展,图像处理技术在许多领域得到了广泛应用,数字图像处理已成为电子信息、通信、计算机、自动化、信号处理等专业的重要课程。 数字图像处理课程设计是在完成数字图像处理的相关理论的学习后,进行的综合性训练课程,其目的主要包括: 1、使学生进一步巩固数字图像处理的基本概念、理论、分析方法和实现方法; 2、增强学生应用VC++编写数字图像处理的应用程序及分析、解决实际问题的能力; 3、尝试将所学的内容解决实际工程问题,培养学生的工程实践能力,提高工科学生的就业能力。 三、设计内容 1、直方图显示 直方图显示就是统计图像某一灰度级出现的次数,保存到一个数组中。然后在一个直方图上画图显示出来。 2、直方图均衡化 直方图就是某一灰度级的象素个数占整幅图像的象素比h=nj/N,其中nj是灰度级在j的象素数,N是总象素数,扫描整幅图像得出的h的离散序列就是图像的直方图,h求和必然=1,所以直方图可以看成是象素对于灰度的概率分布函数。直方图均衡化算法分为三个步骤,第一步是统计直方图每个灰度级出现的次数,第二步是累计归一化的直方图,第三步是计算新的像素值。对于彩色的图片来说,直方图均衡化一般不能直接对R、G、B三个分量分别进行上述的操作,而要将RGB转换成HSV来对V分量进行直方图均衡化的操作。3、浮雕效果 浮雕效果就是将图像的变化部分突出显示,颜色相同部分淡化处理,使图像出现浮雕效果。实现图像浮雕效果的一般原理是,将图像上每个像素点与其对角线的像素点形成差值,使相似颜色值淡化,不同颜色值突出,从而产生纵深感,达到浮雕的效果,具体的做法是用处于对角线的2个像素值相减,再加上一个背景常数,一般为128而成。这样颜色变化大的地方色彩就明显,颜色变化小的地方因为差值几乎为零则成黑色。 4、均值滤波 图像平滑主要是为了消除噪声。噪声并不限于人眼所能看的见的失真和变形,有些噪声只有在进行图像处理时才可以发现。图像的常见噪声主要有加性噪声、乘性噪声和量化噪声等。图像中的噪声往往和信号交织在一起,尤其是乘性噪声,如果平滑不当,就会使图像本身的细节如边界轮廓、线条等变的模糊不清,如何既平滑掉噪声有尽量保持图像细节,是图像平滑主要研究的任务。 这次实验采用的均值滤波,原理是采用一个3*3的模板

MATLAB全实验报告

《数学实验》报告 实验名称 Matlab 基础知识 学院 专业班级 姓名 学号 2014年 6月

一、【实验目的】 1.认识熟悉Matlab这一软件,并在此基础上学会基本操作。 2.掌握Matlab基本操作和常用命令。 3.了解Matlab常用函数,运算符和表达式。 4.掌握Matlab工作方式和M文件的相关知识。 5.学会Matlab中矩阵和数组的运算。 二、【实验任务】 P16 第4题 编写函数文件,计算 1! n k k = ∑,并求出当k=20时表达式的值。P27第2题 矩阵A= 123 456 789 ?? ?? ?? ?? ?? ,B= 468 556 322 ?? ?? ?? ?? ?? ,计算A*B,A.*B,并比较两者的区别。 P27第3题 已知矩阵A= 52 91 ?? ?? ?? ,B= 12 92 ?? ?? ?? ,做简单的关系运算A>B,A==B,AB)。 P34 第1题 用 111 1 4357 π =-+-+……公式求π的近似值,直到某一项的绝对值小于-6 10为止。 三、【实验程序】 P16 第4题 function sum=jiecheng(n) sum=0; y=1; for k=1:n for i=1:k y=y*i; end sum=sum+y; end sum P27第2题 >>A=[1 2 3;4 5 6;7 8 9] >>B=[4 6 8;5 5 6;3 2 2] >>A*B

P27第3题 >> A=[5 2;9 1];B=[1 2;9 2]; >>A>B >>A==B >>A> (A==B)&(A> (A==B)&(A>B) P34 第1题 t=1; pi=0; n=1; s=1; while abs(t)>=1e-6 pi=pi+t; n=n+2; s=-s; t=s/n; end pi=4*pi; 四、【实验结果】 P16 第4题 P27第2题

matlab课程设计题目全

Matalab课后作业 学院:电气信息工程及其自动化 班级: 学号: 姓名: 完成日期: 2012年12月23日

1、 matlab 软件主要功能是什么?电气工程及其自动化专业本科生主要用到哪 些工具箱,各有什么功能? 答:(1)主要功能:工业研究与开发; 数学教学,特别是线性代数;数值分析和科学计算方面的教学与研究;电子学、控制理论和物理学等工程和科学学科方面的教学与研究; 经济学、化学和生物学等计算问题的所有其他领域中的教学与研究;符号计算功能;优化工具;数据分析和可视化功能;“活”笔记本功能;工具箱;非线性动态系统建模和仿真功能。 (2)常用工具箱: (a ) MATLAB 主工具箱:扩充matlab 的数值计算、符号运算功能、图形建模仿真功能、文字处理功能以及与硬件实时交互功能。 (b )符号数学工具箱:符号表达式、符号矩阵的创建;符号可变精度求解;因式分解、展开和简化;符号代数方程求解;符号微积分;符号微分方程。 (c ) SIMULINK 仿真工具箱: Simulink 是用于动态系统和嵌入式系统的多领域仿真和基于模型的设计工具。对各种时变系统,包括通讯、控制、信号处理、视频处理和图像处理系统,Simulink 提供了交互式图形化环境和可定制模块库来对其进行设计、仿真、执行和测试。 (d )信号处理工具箱:数字和模拟滤波器设计、应用及仿真;谱分析和估计;FFT 、DCT 等 变换;参数化模型。 (e )控制系统工具箱:连续系统设计和离散系统设计;状态空间和传递函数以及模型转换;时域响应(脉冲响应、阶跃响应、斜坡响应);频域响应(Bode 图、Nyquist 图);根轨迹、极点配置。 2、设y=23e t 4-sin(43t+3 ),要求以0.01秒为间隔,求出y 的151个点,并求出其导数的值和曲线。 程序如下: clc clear x=0:0.01:1.5; y=sqrt(3)/2*exp(-4*x).*sin(4*sqrt(3)*x+pi/3); y1=diff(y); subplot(2,1,1) plot(x,y) subplot(2,1,2) plot(x(1:150),y1) 曲线如下图所示:

matlab课程设计拟定题目

第一类:单位转换 1.长度单位换算的设计与实现 2.面积单位换算的设计与实现 3.体积单位换算的设计与实现 4.容积单位换算的设计与实现 5.质量单位换算的设计与实现 6.时间单位换算的设计与实现 7.温度单位换算的设计与实现 7.压强单位换算的设计与实现 8.角度单位换算的设计与实现 8.功率单位换算的设计与实现 第二类:曲线绘制 1.直线的自动绘制和相关计算 2.椭圆的自动绘制和相关计算 3.双曲线的自动绘制和相关计算 4.抛物线的自动绘制和相关计算 5.心脏线的自动绘制和相关计算 6.渐开线的自动绘制和相关计算 7.滚圆线的自动绘制和相关计算 8.三叶玫瑰线的自动绘制和相关计算9.四叶玫瑰线的自动绘制和相关计 10.阿基米德螺线的自动绘制和相关计算第三类:曲面绘制 1.球面的自动绘制和相关计算 2.椭球面的自动绘制和相关计算 3.单叶双曲面的自动绘制和相关计算 4.双叶双曲面的自动绘制和相关计算 5.抛物面的自动绘制和相关计算 6.双曲抛物面的自动绘制和相关计算 7.双曲柱面的自动绘制和相关计算 8.椭圆柱面的自动绘制和相关计算 9.抛物柱面的自动绘制和相关计算 10.圆锥面的自动绘制和相关计算 第四类:线性回归 1.男士身高体重相关计算经验公式 2.女士身高体重相关计算经验公式 3.男士胖瘦等级的确定 4.女士胖瘦等级的确定 5.男士身高脚长相关计算经验公式 6.女士身高脚长相关计算经验公式 7.父子身高相关性研究 8.母子身高相关性研究 9.父女身高相关性研究 10.母女身高相关性研究 第五类:学习成绩 1.期末总评自动计算的设计与实现 2.成绩等级自动评定的设计与实现 3.成绩分段自动统计的设计与实现 4.成绩分布折线自动绘制的设计与实现 5.成绩自动统计分析的设计与实现 6.试卷分布自动分析的设计与实现 7.试卷难度自动分析的设计与实现 8.考试成绩名次自动生成的设计与实现

数字图像处理课程设计

数字图像处理课程设计报告 目录 一.实验目的 (3) 二.实验内容............ ................... . (3) 1.打开图像 (3) (1)、图像信息获取 (3) (2). RgbtoHsi(&rgb, &Hsi) (4) (3).OnMouseMove(UINT nFlags, CPoint point) (4) 2.标记Mark点 (5)

(1)标记可能的点 (5) (2)把可能标记的点变为标记点 (5) (3) EdgeIformation边缘标记 (6) (4)EdgeFilter边缘滤波 (6) 3.二值化 (7) 4.填洞 (8) 5收缩 (10) 6获取中心点 (11) 三.学习心得 1.错误总结 (16) 2.心得体 会 (17) 一.实验目的: 对血液细胞切片图片进行各种处理,最终得出细胞的数目、半径等信息 基于vc的红细胞识别统计系统设计 它主要以病人的血液样本为原始数据。经过一系列的图像处理和分析,识别出血液中的红细胞,并能给出红细胞的个数。而得到红细胞的个数以后,通过血液量的检测,就可以得出血液中红细胞的密度。该系统可以很方便的利用在临床上,大大提高速度和效率。

二、实验内容 基于VC++6.0软件下的细胞识别,通过细胞的标记、二值化、提取边缘、填洞、收缩、找中心点、计数等过程完成实验目的 1 . 打开图像 (1)图像信息获取 该步骤实现的功能是打开bmp格式的图像文件,要对图像进行操作,系统必须能调用图像。 打开bmp图像的具体步骤为 1.新建项目:--MFC AppWizard、工程名 2.拷贝cdib.h,cdib.cpp到工程文件夹,再向工程里添加 3.~Doc.h添加变量:m_pDib 4.~doc.cpp:变量(m_pDib):new、delete 5.~doc.cpp: Serialize() 6.~View.cpp: OnDraw() m_pDib->Draw() 2.RgbtoHsi(&rgb, &Hsi)

matlab学习心得体会(精选3篇)

matlab学习心得体会(精选3篇) matlab学习心得体会一:matlab学习心得matlab中有丰富的图形处理能力,提供了绘制各种图形、图像数据的函数。他提供了一组绘制二维和三维曲线的函数,他们还可以对图形进行旋转、缩放等操作。matlab内部还包含丰富的数学函数和数据类型,使用方便且功能非常强大。 本学期通过对matlab的系统环境,数据的各种运算,矩阵的分析和处理,程序设计,绘图,数值计算及符号运算的学习,初步掌握了matlab的实用方法。通过理论课的讲解与实验课的操作,使我在短时间内学会使用matlab,同时,通过上机实验,对理论知识的复习巩固实践,可以自己根据例题编写设计简单的程序来实现不同的功能,绘制出比较满意的二维三维图形,在实践中找到乐趣。 matlab是一个实用性很强,操作相对容易,比较完善的工具软件,使用起来比较方便,通过操作可以很快看到结果,能够清晰的感觉到成功与失败,虽然课程中也会出现一些小问题,但是很喜欢这门课程。 matlab学习心得体会二:matlab学习心得(463字) 学习matlab是听说它是一个功能强大的数学软件,但是正被微积分的计算缠身,听说有一个高级的计算器当然高兴,以后可以偷懒了,当然现在不能偷懒。听说关于自动化的计算特别复杂,如果有一种软件能帮忙解题,那是一种极大的解脱,有益于缩短研究时间。目前我只知道有三种数学软件,都是国外的,没有国内的,差距挺大的。matlab学起来挺顺手的,比c语言简单。但是深入学习的时候却困难重重,因为很多知识都没有学习,就算知道那些函数,也没有什么用处。老师布置的作业难度大,写一篇实验,大一什么都不会,写一篇这种论文谈何容易。最多也就会一些数值计算、符号计算、简单绘图,根本不会什么实验。 学习matlab体会最多的是这个软件的功能强大,好多数学题都被轻易的解出。但是有一点遗憾,不知是我不会用,还是它没个功能,已知空间的电荷分布,求空间的电场分布。其中电场分布是无法用函数表达式表示。我知道计算机肯定可以实现,但是这个软件能不能实现就不知道了,我看过许多资料,但是在这方面没有提到相关信息。 总之,这个软件功能强大,不知什么时候国内才有类似的软件。 matlab学习心得体会三:学习matlab的心得(817字) 这是我在学习的过程中的一些技巧,或许对你有帮助,可能字数不你能满足你的要求,但是绝对是精华。

MATLAB课程设计报告图像处理

一.课程设计相关知识综述...................................................................... 1.1 研究目的及意义 (3) 1.2 数字图像处理研究的内容........................................................... 1.3 MATLAB 软件的介绍.................................................................. 1.3.1 MATLAB 语言的特点......................................................... 1.3.2 MATLAB 图像文件格式.................................................... 1.3.3 MATLAB 图像处理工具箱简介........................................ 1.3.4 MATLAB 中的图像类型.................................................... 1.3.5 MATLAB 的主要应用........................................................ 1.4 函数介绍........................................................................................ 二.课程设计内容和要求........................................................................... 2.1 主要研究内容................................................................................ 2.2 具体要求....................................................................................... 2.3 预期达到的目标........................................................................... 三.设计过程............................................................................................... 3.1 设计方案及步骤............................................................................ 3.2 程序清单及注释........................................................................... 3.3 实验结果........................................................................................ 四.团队情况................................................................................................ 五.总结....................................................................................................... 六.参考文献............................................................................................... 一.课程设计相关知识综述. 1.1研究目的及意义

数字图像处理课程设计(实验报告)

上海理工大学 计算机工程学院 实验报告 实验名称红细胞数目统计课程名称数字图像处理 姓名王磊学号0916020226 日期2012-11-27 地点图文信息中心成绩教师韩彦芳

一、设计内容: 主题:《红细胞数目检测》 详细说明:读入红细胞图片,通过中值滤波,开运算,闭运算,以及贴标签等方法获得细胞个数。 二、现实意义: 细胞数目检测在现实生活中的意义主要体现在医学上的作用,可通过细胞数目的检测来查看并估计病人或动物的血液中细胞数,如估测血液中红细胞、白细胞、血小板、淋巴细胞等细胞的数目,同时也可检测癌细胞的数目来查看医疗效果,根据这一系列的指标来对病人或动物进行治疗,是具有极其重要的现实作用的。 三、涉及知识内容: 1、中值滤波 2、开运算 3、闭运算 4、二值化 5、贴标签 四、实例分析及截图效果: (1)代码如下: 1、程序中定义图像变量说明 (1)Image--------------------------------------------------------------原图变量;

(2)Image_BW-------------------------------------------------------值化图象; (3)Image_BW_medfilt-------------------------中值滤波后的二值化图像; (4)Optimized_Image_BW---通过“初次二值化图像”与“中值滤波后的二值化图像”进行“或”运算优化图像效果; (5)Reverse_Image_BW--------------------------优化后二值化图象取反;(6)Filled_Image_BW----------------------已填充背景色的二进制图像;(7)Open_Image_BW--------------------------------------开运算后的图像; 2、实现代码: %-------图片前期处理------------------- %第一步:读取原图,并显示 A = imread('E:\红细胞3.png'); Image=rgb2gray(A); %RGB转化成灰度图 figure,imshow(Image); title('【原图】'); %第二步:进行二值化 Theshold = graythresh(Image); %取得图象的全局域值 Image_BW = im2bw(Image,Theshold); %二值化图象 figure,imshow(Image_BW); title('【初次二值化图像】'); %第三步二值化图像进行中值滤波 Image_BW_medfilt= medfilt2(Image_BW,[13 13]); figure,imshow(Image_BW_medfilt); title('【中值滤波后的二值化图像】'); %第四步:通过“初次二值化图像”与“中值滤波后的二值化图像”进行“或”运算优化图像效果 Optimized_Image_BW = Image_BW_medfilt|Image_BW; figure,imshow(Optimized_Image_BW); title('【进行“或”运算优化图像效果】'); %第五步:优化后二值化图象取反,保证:‘1’-〉‘白色’,‘0’-〉‘黑色’ %方便下面的操作 Reverse_Image_BW = ~Optimized_Image_BW; figure,imshow(Reverse_Image_BW); title('【优化后二值化图象取反】');

相关主题
文本预览
相关文档 最新文档