文档库 最新最全的文档下载
当前位置:文档库 › matlab中图像读写

matlab中图像读写

matlab中图像读写
matlab中图像读写

matlab中图像读写

分类:mat_lab 2010-03-21 10:55 482人阅读评论(0) 收藏举报

一. 读写图像文件

1. imread

imread函数用于读入各种图像文件,如:a=imread('e:/w01.tif')

注:计算机E盘上要有w01相应的.tif文件。

2. imwrite

imwrite函数用于写入图像文件,如:imwrite(a,'e:/w02.tif',’tif’)

3. imfinfo

imfinfo函数用于读取图像文件的有关信息,如:imfinfo('e:/w01.tif')

二. 图像的显示

1. image

image函数是MATLAB提供的最原始的图像显示函数(主要彩色显示图象),如:

a=[1,2,3,4;4,5,6,7;8,9,10,11,12];

image(a);

2. imshow

imshow函数用于灰度图像文件的显示,如:

i=imread('e:/w01.tif');

imshow(i);

3. colorbar

colorbar函数用显示图像的颜色条。

通常,颜色映象进行过调节,把数据从最小扩展到最大,也就是说整个颜色映象都用于绘图。有时也许想改变颜色使用的方法。函数caxis代表颜色轴,因为颜色增加了另一个维数,它允许对数据范围的一个子集使用整个颜色映象或者对数据的整个集合只使用当前颜色映象的一部分。

[cmin,cmax]=caxis返回映射到颜色映象中第一和最后输入项的最小和最大的数据。它们通常被设成数据的最小值和最大值。比如,函数mesh(peaks) 会画出函数peaks的网格图,并把颜色轴caxis设为[-6.5466,8.0752],即Z的最小值和最大值。这些值之间的数据点,使用从颜色映象中经插值得到的颜色。如:

i=imread('e:/w01.tif');

imshow(i);

colorbar;

4 .figure

figure函数用于设定图像显示窗口,如:figure(1);/figure(2);

5.imagesc(a); caxis([-3 8]) ; colorbar;

标尺标度从-3,到8 显示标度尺。

三. 图像的变换

1. fft2

fft2函数用于数字图像的二维傅立叶变换,如:

i=imread('e:/w01.tif');

j=fft2(i);

2. ifft2

ifft2函数用于数字图像的二维傅立叶反变换,如:i=imread('e:/w01.tif');

j=fft2(i);

k=ifft2(j);

3. 利用fft2计算二维卷积

利用fft2函数可以计算二维卷积,如:

a=[8,1,6;3,5,7;4,9,2];

b=[1,1,1;1,1,1;1,1,1];

a(8,8)=0;

b(8,8)=0;

c=ifft2(fft2(a).*fft2(b));

c=c(1:5,1:5);

利用conv2(二维卷积函数)校验, 如:

a=[8,1,6;3,5,7;4,9,2];

b=[1,1,1;1,1,1;1,1,1];

c=conv2(a,b);

四. 模拟噪声生成函数和预定义滤波器

1. imnoise

imnoise函数用于对图像生成模拟噪声,如:

i=imread('e:/w01.tif');

j=imnoise(i,'gaussian',0,0.02);%模拟高斯噪声2. fspecial

fspecial函数用于产生预定义滤波器,如:

h=fspecial('sobel');%sobel水平边缘增强滤波器

h=fspecial('gaussian');%高斯低通滤波器

h=fspecial('laplacian');%拉普拉斯滤波器

h=fspecial('log');%高斯拉普拉斯(LoG)滤波器h=fspecial('average');%均值滤波器

五. 图像的增强

1. 直方图

imhist函数用于数字图像的直方图显示,如:

i=imread('e:/w01.tif');

imhist(i);

2. 直方图均化

histeq函数用于数字图像的直方图均化,如:i=imread('e:/w01.tif');

j=histeq(i);

3. 对比度调整

imadjust函数用于数字图像的对比度调整,如:i=imread('e:/w01.tif');

j=imadjust(i,[0.3,0.7],[]);

4. 对数变换

log函数用于数字图像的对数变换,如:

i=imread('e:/w01.tif');

j=double(i);

k=log(j);

5. 基于卷积的图像滤波函数

filter2函数用于图像滤波,如:

i=imread('e:/w01.tif');

h=[1,2,1;0,0,0;-1,-2,-1];

j=filter2(h,i);

6. 线性滤波

利用二维卷积conv2滤波, 如:

i=imread('e:/w01.tif');

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

h=h/9;

j=conv2(i,h);

7. 中值滤波

medfilt2函数用于图像的中值滤波,如:

i=imread('e:/w01.tif');

j=medfilt2(i);

8. 锐化

(1)利用Sobel算子锐化图像, 如:

i=imread('e:/w01.tif');

h=[1,2,1;0,0,0;-1,-2,-1];%Sobel算子

j=filter2(h,i);

(2)利用拉氏算子锐化图像, 如:

i=imread('e:/w01.tif');

j=double(i);

h=[0,1,0;1,-4,0;0,1,0];%拉氏算子

k=conv2(j,h,'same');

m=j-k;

六. 举例

二维傅立叶变换和二维傅立叶反变换:

i=imread('e:/w01.tif');

figure(1);

imshow(i);

colorbar;

j=fft2(i);

k=fftshift(j);

figure(2);

l=log(abs(k));

imshow(l,[]);

colorbar

n=ifft2(j)/255;

figure(3);

imshow(n);

colorbar;

图像的变换

1. 离散傅立叶变换的Matlab 实现

Matlab 函数fft、fft2 和fftn 分别可以实现一维、二维和N 维DFT 算法;而函数ifft、ifft2 和ifftn 则用来计算反DFT 。这些函数的调用格式如下:

A=fft(X,N,DIM)

其中,X 表示输入图像;N 表示采样间隔点,如果X 小于该数值,那么Matlab 将会对X 进行零填充,否则将进行截取,使之长度为N ;DIM 表示要进行离散傅立叶变换。

A=fft2(X,MROWS,NCOLS)

其中,MROWS 和NCOLS 指定对X 进行零填充后的X 大小。

A=fftn(X,SIZE)

其中,SIZE 是一个向量,它们每一个元素都将指定X 相应维进行零填充后的长度。

函数ifft、ifft2 和ifftn的调用格式于对应的离散傅立叶变换函数一致。

例子:图像的二维傅立叶频谱

% 读入原始图像

I=imread('lena.bmp');

imshow(I)

% 求离散傅立叶频谱

J=fftshift(fft2(I));

figure;

imshow(log(abs(J)),[8,10])

2. 离散余弦变换的Matlab 实现

2.1. dct2 函数

功能:二维DCT 变换

格式:B=dct2(A)

B=dct2(A,m,n)

B=dct2(A,[m,n])

说明:B=dct2(A) 计算A 的DCT 变换B ,A 与B 的大小相同;B=dct2(A,m,n) 和B=dct2(A,[m,n]) 通过对A 补0 或剪裁,使B 的大小为m×n。

2.2. dict2 函数

功能:DCT 反变换

格式:B=idct2(A)

B=idct2(A,m,n)

B=idct2(A,[m,n])

说明:B=idct2(A) 计算A 的DCT 反变换B ,A 与B 的大小相同;B=idct2(A,m,n) 和B=idct2(A,[m,n]) 通过对A 补0 或剪裁,使B 的大小为m×n。

2.3. dctmtx函数

功能:计算DCT 变换矩阵

格式:D=dctmtx(n)

说明:D=dctmtx(n) 返回一个n×n 的DCT 变换矩阵,输出矩阵D 为double 类型。

3. 图像小波变换的Matlab 实现

3.1 一维小波变换的Matlab 实现

(1) dwt 函数

功能:一维离散小波变换

格式:[cA,cD]=dwt(X,'wname')

[cA,cD]=dwt(X,Lo_D,Hi_D)

说明:[cA,cD]=dwt(X,'wname') 使用指定的小波基函数'wname' 对信号X 进行分解,cA、cD 分别为近似分量和细节分量;[cA,cD]=dwt(X,Lo_D,Hi_D) 使用指定的滤波器组Lo_D、Hi_D 对信号进行分解。

(2) idwt 函数

功能:一维离散小波反变换

格式:X=idwt(cA,cD,'wname')

X=idwt(cA,cD,Lo_R,Hi_R)

X=idwt(cA,cD,'wname',L)

X=idwt(cA,cD,Lo_R,Hi_R,L)

说明:X=idwt(cA,cD,'wname') 由近似分量cA 和细节分量cD 经小波反变换重构原始信号X 。

'wname' 为所选的小波函数

X=idwt(cA,cD,Lo_R,Hi_R) 用指定的重构滤波器Lo_R 和Hi_R 经小波反变换重构原始

信号X 。

X=idwt(cA,cD,'wname',L) 和X=idwt(cA,cD,Lo_R,Hi_R,L) 指定返回信号X 中心附近的

L 个点。

3.2 二维小波变换的Matlab 实现

二维小波变换的函数

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

函数名函数功能

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

dwt2 二维离散小波变换

wavedec2 二维信号的多层小波分解

idwt2 二维离散小波反变换

waverec2 二维信号的多层小波重构

wrcoef2 由多层小波分解重构某一层的分解信号

upcoef2 由多层小波分解重构近似分量或细节分量

detcoef2 提取二维信号小波分解的细节分量

appcoef2 提取二维信号小波分解的近似分量

upwlev2 二维小波分解的单层重构

dwtpet2 二维周期小波变换

idwtper2 二维周期小波反变换

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

(1) wcodemat 函数

功能:对数据矩阵进行伪彩色编码

格式:Y=wcodemat(X,NB,OPT,ABSOL)

Y=wcodemat(X,NB,OPT)

Y=wcodemat(X,NB)

Y=wcodemat(X)

说明:Y=wcodemat(X,NB,OPT,ABSOL) 返回数据矩阵X 的编码矩阵Y ;NB 伪编码的最大值,即编码范围为0~NB,缺省值NB=16;

OPT 指定了编码的方式(缺省值为'mat'),即:

OPT='row' ,按行编码

OPT='col' ,按列编码

OPT='mat' ,按整个矩阵编码

ABSOL 是函数的控制参数(缺省值为'1'),即:

ABSOL=0 时,返回编码矩阵

ABSOL=1 时,返回数据矩阵的绝对值ABS(X)

(2) dwt2 函数

功能:二维离散小波变换

格式:[cA,cH,cV,cD]=dwt2(X,'wname')

[cA,cH,cV,cD]=dwt2(X,Lo_D,Hi_D)

说明:[cA,cH,cV,cD]=dwt2(X,'wname')使用指定的小波基函数'wname' 对二维信号X 进行二维离散小波变幻;cA,cH,cV,cD 分别为近似分量、水平细节分量、垂直细节分量和对角细节分量;[cA,cH,cV,cD]=dwt2(X,Lo_D,Hi_D) 使用指定的分解低通和高通滤波器Lo_D 和Hi_D 分解信号X 。

(3) wavedec2 函数

功能:二维信号的多层小波分解

格式:[C,S]=wavedec2(X,N,'wname')

[C,S]=wavedec2(X,N,Lo_D,Hi_D)

说明:[C,S]=wavedec2(X,N,'wname') 使用小波基函数'wname' 对二维信号X 进行N 层分解;[C,S]=wavedec2(X,N,Lo_D,Hi_D) 使用指定的分解低通和高通滤波器Lo_D 和

Hi_D 分解信号X 。

(4) idwt2 函数

功能:二维离散小波反变换

格式:X=idwt2(cA,cH,cV,cD,'wname')

X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R)

X=idwt2(cA,cH,cV,cD,'wname',S)

X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R,S)

说明:X=idwt2(cA,cH,cV,cD,'wname') 由信号小波分解的近似信号cA 和细节信号cH、

cH、cV、cD 经小波反变换重构原信号X ;X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R) 使用指定的重构低通和高通滤波器Lo_R 和Hi_R 重构原信号X ;

X=idwt2(cA,cH,cV,cD,'wname',S) 和X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R,S) 返回中心附近的S 个数据点。

(5) waverec2 函数

说明:二维信号的多层小波重构

格式:X=waverec2(C,S,'wname')

X=waverec2(C,S,Lo_R,Hi_R)

说明:X=waverec2(C,S,'wname') 由多层二维小波分解的结果C、S 重构原始信号X ,'wname' 为使用的小波基函数;X=waverec2(C,S,Lo_R,Hi_R) 使用重构低通和高通滤波器Lo_R 和Hi_R 重构原信号。

图像处理工具箱1. 图像和图像数据

缺省情况下,MATLAB将图像中的数据存储为双精度类型(double),64位浮点

数,所需存储量很大;MATLAB还支持另一种类型无符号整型(uint8),即图像矩

阵中每个数据占用1个字节。

在使用MATLAB工具箱时,一定要注意函数所要求的参数类型。另外,uint8

与double两种类型数据的值域不同,编程需注意值域转换。

从uint8到double的转换

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

图像类型MATLAB语句

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

索引色B=double(A)+1

索引色或真彩色B=double(A)/255

二值图像B=double(A)

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

从double到uint8的转换

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

图像类型MATLAB语句

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

索引色B=uint8(round(A-1))

索引色或真彩色B=uint8(round(A*255))

二值图像B=logical(uint8(round(A)))

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

2. 图像处理工具箱所支持的图像类型

2.1 真彩色图像

R、G、B三个分量表示一个像素的颜色。如果要读取图像中(100,50)处的像素值,

可查看三元数据(100,50,1:3)。

真彩色图像可用双精度存储,亮度值范围是[0,1];比较符合习惯的存储方法是用无

符号整型存储,亮度值范围[0,255]

2.2 索引色图像

包含两个结构,一个是调色板,另一个是图像数据矩阵。调色板是一个有3列和若干行的色彩映象矩阵,矩阵每行代表一种颜色,3列分别代表红、绿、蓝色强度的双精度数。注意:MATLAB中调色板色彩强度[0,1],0代表最暗,1代表最亮。

常用颜色的RGB值

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

颜色R G B 颜色R G B

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

黑0 0 1 洋红1 0 1

白1 1 1 青蓝0 1 1

红1 0 0 天蓝0.67 0 1

绿0 1 0 橘黄1 0.5 0

蓝0 0 1 深红0.5 0 0

黄1 1 0 灰0.5 0.5 0.5

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

产生标准调色板的函数

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

函数名调色板

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

Hsv 色彩饱和度,以红色开始,并以红色结束

Hot 黑色-红色-黄色-白色

Cool 青蓝和洋红的色度

Pink 粉红的色度

Gray 线型灰度

Bone 带蓝色的灰度

Jet Hsv的一种变形,以蓝色开始,以蓝色结束

Copper 线型铜色度

Prim 三棱镜,交替为红、橘黄、黄、绿和天蓝

Flag 交替为红、白、蓝和黑

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

缺省情况下,调用上述函数灰产生一个64×3的调色板,用户也可指定调色板大小。

索引色图像数据也有double和uint8两种类型。

当图像数据为double类型时,值1代表调色板中的第1行,值2代表第2行……

如果图像数据为uint8类型,0代表调色板的第一行,,值1代表第2行……

2.3 灰度图像

存储灰度图像只需要一个数据矩阵。

数据类型可以是double,[0,1];也可以是uint8,[0,255]

2.4 二值图像

二值图像只需一个数据矩阵,每个像素只有两个灰度值,可以采用uint8或double类型存储。

MATLAB工具箱中以二值图像作为返回结果的函数都使用uint8类型。

2.5 图像序列

MATLAB工具箱支持将多帧图像连接成图像序列。

图像序列是一个4维数组,图像帧的序号在图像的长、宽、颜色深度之后构成第4维。分散的图像也可以合并成图像序列,前提是各图像尺寸必须相同,若是索引色图像,

调色板也必须相同。

可参考cat()函数A=cat(4,A1,A2,A3,A4,A5)

3. MATLAB图像类型转换

图像类型转换函数

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

函数名函数功能

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

dither 图像抖动,将灰度图变成二值图,或将真彩色图像抖动成索引色图像

gray2ind 将灰度图像转换成索引图像

grayslice 通过设定阈值将灰度图像转换成索引色图像

im2bw 通过设定亮度阈值将真彩色、索引色、灰度图转换成二值图

ind2gray 将索引色图像转换成灰度图像

ind2rgb 将索引色图像转换成真彩色图像

mat2gray 将一个数据矩阵转换成一副灰度图

rgb2gray 将一副真彩色图像转换成灰度图像

rgb2ind 将真彩色图像转换成索引色图像

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

4. 图像文件的读写和查询

4.1 图形图像文件的读取

利用函数imread()可完成图形图像文件的读取,语法:

A=imread(filename,fmt)

[X,map]=imread(filename,fmt)

[...]=imread(filename)

[...]=imread(filename,idx) (只对TIF格式的文件)

[...]=imread(filename,ref) (只对HDF格式的文件)

通常,读取的大多数图像均为8bit,当这些图像加载到内存中时,Matlab就将其存放

在类uint8中。此为Matlab还支持16bit的PNG和TIF图像,当读取这类文件时,Matlab 就将

其存贮在uint16中。

注意:对于索引图像,即使图像阵列的本身为类uint8或类uint16,imread函数仍将

颜色映象表读取并存贮到一个双精度的浮点类型的阵列中。

4.2 图形图像文件的写入

使用imwrite函数,语法如下:

imwrite(A,filename,fmt)

imwrite(X,map,filename,fmt)

imwrite(...,filename)

imwrite(...,parameter,value)

当利用imwrite函数保存图像时,Matlab缺省的方式是将其简化道uint8的数据格式。

4.3 图形图像文件信息的查询imfinfo()函数

5. 图像文件的显示

5.1 索引图像及其显示

方法一:

image(X)

colormap(map)

方法二:

imshow(X,map)

5.2 灰度图像及其显示

Matlab 7.0 中,要显示一副灰度图像,可以调用函数imshow 或imagesc (即imagescale,图像缩放函数)

(1) imshow 函数显示灰度图像

使用imshow(I) 或使用明确指定的灰度级书目:imshow(I,32)

由于Matlab自动对灰度图像进行标度以适合调色板的范围,因而可以使用自定义

大小的调色板。其调用格式如下:

imshow(I,[low,high])

其中,low 和high 分别为数据数组的最小值和最大值。

(2) imagesc 函数显示灰度图像

下面的代码是具有两个输入参数的imagesc 函数显示一副灰度图像

imagesc(1,[0,1]);

colormap(gray);

imagesc 函数中的第二个参数确定灰度范围。灰度范围中的第一个值(通常是0),

对应于颜色映象表中的第一个值(颜色),第二个值(通常是1)则对应与颜色映象表

中的最后一个值(颜色)。灰度范围中间的值则线型对应与颜色映象表中剩余的值(颜色)。在调用imagesc 函数时,若只使用一个参数,可以用任意灰度范围显示图像。在该

调用方式下,数据矩阵中的最小值对应于颜色映象表中的第一个颜色值,数据矩阵中的最大值对应于颜色映象表中的最后一个颜色值。

5.3 RGB 图像及其显示

(1) image(RGB)

不管RGB图像的类型是double浮点型,还是uint8 或uint16 无符号整数型,Matlab都能通过image 函数将其正确显示出来。

RGB8 = uint8(round(RGB64×255)); %将double 浮点型转换为uint8 无符号整型RGB64 = double(RGB8)/255; %将uint8 无符号整型转换为double 浮点型

RGB16 = uint16(round(RGB64×65535)); %将double 浮点型转换为uint16 无符号整型

RGB64 = double(RGB16)/65535; %将uint16 无符号整型转换为double 浮点型

(2) imshow(RGB) 参数是一个m×n×3 的数组

5.4 二进制图像及其显示

(1) imshow(BW)

在Matlab 7.0 中,二进制图像是一个逻辑类,仅包括0 和1 两个数值。像素0 显示

为黑色,像素1 显示为白色。

显示时,也可通过NOT(~)命令,对二进制图象进行取反,使数值0 显示为白色;1 显示为黑色。

例如:imshow(~BW)

(2) 此外,还可以使用一个调色板显示一副二进制图像。如果图形是uint8 数据类型,

则数值0 显示为调色板的第一个颜色,数值1 显示为第二个颜色。

例如:imshow(BW,[1 0 0;0 0 1])

5.5 直接从磁盘显示图像

可使用一下命令直接进行图像文件的显示:

imshow filename

其中,filename 为要显示的图像文件的文件名。

如果图像是多帧的,那么imshow 将仅显示第一帧。但需注意,在使用这种方式时,图像数据没有保存在Matlab 7.0 工作平台。如果希望将图像装入工作台中,需使用getimage 函

数,从当前的句柄图形图像对象中获取图像数据,命令形式为:rgb =getimage;

matlab图像处理的几个实例

Matlab图像处理的几个实例(初学者用) 1.图像的基本信息及其加减乘除 clear,clc; P=imread('yjx.jpg'); whos P Q=imread('dt.jpg'); P=im2double(P); Q=im2double(Q); gg1=im2bw(P,0.3); gg2=im2bw(P,0.5); gg3=im2bw(P,0.8); K=imadd(gg1,gg2); L=imsubtract(gg2,gg3); cf=immultiply(P,Q); sf=imdivide(Q,P); subplot(421),imshow(P),title('郁金香原图'); subplot(422),imshow(gg1),title('0.3'); subplot(423),imshow(gg2),title('0.5'); subplot(424),imshow(gg3),title('0.8'); subplot(425),imshow(K),title('0.3+0.5'); subplot(426),imshow(L),title('0.5-0.3'); subplot(427),imshow(cf),title('P*Q'); subplot(428),imshow(sf),title('P/Q'); 2.图像缩放 clear,clc; I=imread('dt.jpg'); A=imresize(I,0.1,'nearest'); B=imresize(I,0.4,'bilinear'); C=imresize(I,0.7,'bicubic'); D=imresize(I,[100,200]); F=imresize(I,[400,100]); figure subplot(321),imshow(I),title('原图'); subplot(322),imshow(A),title('最邻近插值'); subplot(323),imshow(B),title('双线性插值'); subplot(324),imshow(C),title('二次立方插值'); subplot(325),imshow(D),title('水平缩放与垂直缩放比例为2:1'); subplot(326),imshow(F),title('水平缩放与垂直缩放比例为1:4');

MATLAB在二元阵方向图乘积定理教学中的应用

摘 要 本文针对天线与电波传播理论课程学习,基于MATLAB语言对二元相似阵方向图乘积定理的进行验证。 关键词 二元相似阵 MATLAB仿真 方向图 1 引言 天线理论分析实质就是求解满足特定边界条件的麦克斯韦方程组。但电磁理论抽象、数学推导较为繁琐以及空间概念难以想象等诸多特点,因此利用MATLAB强大的工程绘图功能,对天线进行辅助分析、设计和仿真等就显得格外重要。本文针对天线理论课程学习,利用MATLAB语言对二元对称振子相似阵进行仿真,其中包括阵因子方向图、方向图乘积定理。实践证明:利用该软件通过计算机仿真,不仅能够帮助学生理解和掌握二元相似阵基本理论,提高学生的学习效率与学习积极性,而且有助于提高学生利用MATLAB来分析解决实际问题的方法与技巧。 2 二元阵的方向性 对于二元相似阵,以天线1为参考天线,天线2相对于天线1的电流关系为I 2=mI 1e jξ,即:天线2的电流振幅为天线1的m 倍,初始相位超前ξ。则天线阵合成方向函数 为 = (1)其中 为天线1的方向性函数称为元因子; 只与两天线的电流比与相对位置有关称为阵因子;ψ=ξ+kdcosδ,k为波数,d为两元天线的间距,δ为电波射线与天线阵轴线之间的夹角。式(1)表明由相似元组成的二元阵,其方向函数(或方向图)等于单元天线的方向函数(或方向图)与阵因子(或方向图)的乘积,这就是方向图乘积定理。 3 方向图乘积定理的验证 3.1 验证二元齐平行阵方向图乘积定理 两个半波振子的轴线沿z轴方向,并沿y轴方向组成二元齐平行阵,其间距d=0.25λ,电流 ,验证方向图乘积定理。根据题意可得: 3.1.1 E面方向图乘积定理的验证。根据题意可知,E面为(yOz 即: ),因此E面方向性函数为: 根据方向性函数,利用Matlab画出E面元因子、阵因子、二元阵方向图如图7所示: MATLAB在二元阵方向图乘积定理教学中的应用 侯维娜 刘占军 (重庆邮电大学光电工程学院) 3.1.2 H面方向图乘积定理的验证。根据题意可知,H面为(xoy 即 : ),因此H面方向性函数为: 根据方向性函数,利用Matlab画出H面元因子、阵因子、二元阵方向图如图8所示 3.2 验证二元共线阵方向图乘积定理 两个半波振子的轴线沿y轴方向,并沿y轴方向组成二元共线阵,其间距d=λ,电流比Im 2=Im 1,验证方向图乘积定理。根据题意可得: 3.2.1 E面方向图乘积定理的验证。根据题意可知,E面为(yOz 即: ),因此E面方向性函数为: 根据方向性函数,利用Matlab画出E面元因子、阵因子、二元阵方向图如图9所示: 3.2.2 H面方向图乘积定理的验证 根据题意可知,H面为(xoz即 :),因此H面方向性函数为: f 2元阵H =1×2 可见H面元因子和阵因子都是常数(方向图为一个圆), 比较简单,故不作方向图。 通过对以上实例分析可知,利用Matlab验证方向图乘积定理简单、直观且快速,Matab在天线阵列分析中的重要性显而易见。 4 结束语 天线阵列能够增强辐射方向性,在现实生活中具有重要 (下转第111页)

图像处理实例(含Matlab代码)

信号与系统实验报告——图像处理 学院:信息科学与工程学院 专业:2014级通信工程 组长:** 组员:** 2017.01.02

目录 目录 (2) 实验一图像一的细胞计数 (3) 一、实验内容及步骤 (3) 二、Matlab程序代码 (3) 三、数据及结果 (4) 实验二图像二的图形结构提取 (5) 一、实验内容及步骤 (5) 二、Matlab程序代码 (5) 三、数据及结果 (6) 实验三图像三的图形结构提取 (7) 一、实验内容及步骤 (7) 二、Matlab程序代码 (7) 三、数据及结果 (8) 实验四图像四的傅里叶变化及巴特沃斯低通滤波 (9) 一、实验内容及步骤 (9) 二、Matlab程序代码 (9) 三、数据及结果 (10) 实验五图像五的空间域滤波与频域滤波 (11) 一、实验内容及步骤 (11) 二、Matlab程序代码 (11) 三、数据及结果 (12)

实验一图像一的细胞计数 一、实验内容及步骤 将该图形进行一系列处理,计算得到途中清晰可见细胞的个数。 首先,由于原图为RGB三色图像处理起来较为麻烦,所以转为灰度图,再进行二值化化为黑白图像,得到二值化图像之后进行中值滤波得到细胞分布的初步图像,为了方便计数对图像取反,这时进行一次计数,发现得到的个数远远多于实际个数,这时在进行一次中值滤波,去掉一些不清晰的像素点,剩下的应该为较为清晰的细胞个数,再次计数得到大致结果。 二、Matlab程序代码 clear;close all; Image = imread('1.jpg'); figure,imshow(Image),title('原图'); Image=rgb2gray(Image); figure,imshow(Image),title('灰度图'); Theshold = graythresh(Image); Image_BW = im2bw(Image,Theshold); Reverse_Image_BW22=~Image_BW; figure,imshow(Image_BW),title('二值化图像'); Image_BW_medfilt= medfilt2(Image_BW,[3 3]); figure,imshow(Image_BW_medfilt),title('中值滤波后的二值化图像'); Reverse_Image_BW = ~Image_BW_medfilt; figure,imshow(Reverse_Image_BW),title('图象取反'); Image_BW_medfilt2= medfilt2(Reverse_Image_BW,[20 20]); figure,imshow(Image_BW_medfilt2),title('第二次中值滤波的二值化图像'); [Label, Number]=bwlabel(Image_BW_medfilt,8);Number [Label, Number]=bwlabel(Image_BW_medfilt2,8);Number

MATLAB仿真设计

MATLAB仿真设计 系院:电子与电气工程学院 专业:电子信息工程 班级: 学号; 姓名: 指导老师: 学期;2013-2014学年第一学期 题目:铅酸电池充放电仿真模型

铅蓄电池充放电的仿真模型 本学期学习了matlab中simulink仿真系统,本文将介绍如何通过simulink来实现铅酸电池的充放电模型。首先要了解铅酸电池充电的化学原理,之后建立相应的化学模型,通过化学模型来实现理论上的成立。然后借助所学的matlab中的simulink仿真系统来实现电池的充放电模型。 内容摘要:simulink 铅酸电池仿真 一:铅酸电池的化学原理和公式 铅酸电池的工作机理是对铅酸蓄电池进行深入研究的基础,因此在讨论其他问题之前先进性简要的介绍。 1,铅酸电池充电时主要化学反应式为: 阴极( 还原反应) : PbSO4+ 2e= Pb+ SO42- 阳极( 氧化反应) : PbSO4+ 2H2O= PbO2+ 4H++ SO42- + 2e 充电时总反应为: PbSO4 + 2H2O = Pb + PbO2 + 2H2SO4 2,铅酸电池放电时主要化学反应为: 负极( 氧化反应) : Pb= Pb2+ + 2e 由于硫酸的存在, Pb2+立即生成难溶解的Pb-SO4。 正极( 还原反应) : PbO2+ 4H++ 2e= Pb2++2H2O 同样, 由于硫酸的存在, Pb2+ 也立即生成Pb-SO4。 放电时的总的反应为: Pb+ PbO2 + 2H2SO4 =2PbSO4+ 2H2O 二:铅酸电池模型的建立

在相同的充、放电模式下,单体电池间一致性的评价包括对电池的工作电压变化的一致性、电压内阻变化的一致性、电池容量变化一致性等三方面的内容。电池的端电压是一个与电池所处的环境温度和电荷荷电状态相关的函数,确定它们之间的关系,是确定电池电动势方程的关键。但是从电化学的角度来推导出其电动势和内阻的方程,是一件比较困难的事情,只能寻求另外的角度来解决这个问题。 三:蓄电池充放电是的变化曲线 蓄电池放电时,电压变化曲线不同放电时蓄电池端电压变化曲线 一额定功率放电的小时数放点小时数 不同充电率时蓄电池端电压变化充电时端电压变化曲线

MATLAB中图像函数大全 详解及例子

图像处理函数详解——strel 功能:用于膨胀腐蚀及开闭运算等操作的结构元素对象(本论坛随即对膨胀腐蚀等操作进行讲解)。 用法:SE=strel(shape,parameters) 创建由指定形状shape对应的结构元素。其中shape的种类有 arbitrary' 'pair' 'diamond' 'periodicline' 'disk' 'rectangle' 'line' 'square' 'octagon 参数parameters一般控制SE的大小。 例子: se1=strel('square',6) %创建6*6的正方形 se2=strel('line',10,45) %创建直线长度10,角度45 se3=strel('disk',15) %创建圆盘半径15 se4=strel('ball',15,5) %创建椭圆体,半径15,高度5

图像处理函数详解——roipoly 功能:用于选择图像中的多边形区域。 用法:BW=roipoly(I,c,r) BW=roipoly(I) BW=roipoly(x,y,I,xi,yi) [BW,xi,yi]=roipoly(...) [x,y,BW,xi,yi]=roipoly(...) BW=roipoly(I,c,r)表示用向量c、r指定多边形各点的X、Y坐标。BW选中的区域为1,其他部分的值为0. BW=roipoly(I)表示建立交互式的处理界面。 BW=roipoly(x,y,I,xi,yi)表示向量x和y建立非默认的坐标系,然后在指定的坐标系下选择由向量xi,yi指定的多边形区域。 例子:I=imread('eight.tif'); c=[222272300270221194]; r=[21217512112175]; BW=roipoly(I,c,r); imshow(I)

图像增强及MATLAB实现

《数字图像处理》课程设计 课设题目:图像增强与MATLAB实现学校学院:华东交通大学理学院 学生班级:13级信息计算(2)班学生:超 学生学号:20130810010216 指导老师:自柱

图像增强与MATLAB实现 摘要 数字图像处理是指将图像信号转换成数字格式并利用计算机对其进行处理的过程。图像增强是数字图像处理的过程中经常采用的一种方法,它对提高图像质量起着重要的作用。本文先对图像增强的原理进行概述,然后对图像增强的方法分类并给出直方图增强、对比度增强、平滑和锐化等几种常用的增强方法的理论基础,通过Matlab实验得出的实际处理效果来对比各种算法的优缺点,讨论不同的增强算法的技术要点,并对其图像增强方法进行性能评价。 关键字:图像;图像增强;算法

目录 一、MATLAB的简介 (1) 1.1MATLAB主要功能 (1) 二、MATLAB的主要功能 (1) 2.1数字增强技术概述 (1) 2.2数字图像的表示 (2)

三、直方图的均衡化 (2) 3.1图像的灰度 (2) 3.2灰度直方图 (2) 3.3直方图均衡化 (3) 四、图像二值化 (5) 4.1图像二值化 (5) 五、对比度增强 (7) 5.1对比度增强 (7) 5.2灰度调整 (8) 5.3对数变换 (9) 六、滤波 (10) 6.1平滑滤波 (10) 6.2线性平滑滤波程序: (11) 6.3非线性滤波 (12) 七、锐化 (18) 八、参考文献 (19) 九、自我评价 (20)

一、Matlab的简介 1.1 MATLAB主要功能 MATLAB是建立在向量、数组和矩阵基础上的一种分析和仿真工具软件包,包含各种能够进行常规运算的“工具箱”,如常用的矩阵代数运算、数组运算、方程求根、优化计算及函数求导积分符号运算等;同时还提供了编程计算的编程特性,通过编程可以解决一些复杂的工程问题;也可绘制二维、三维图形,输出结果可视化。目前,已成为工程领域中较常用的软件工具包之一。 二、MATLAB的主要功能 2.1数字增强技术概述 图像增强是按特定的需要突出一幅图像中的某些信息,同时,消弱或去除某些信息使得图像更加实用。图像增强技术主要包含直方图修改处理、图像平滑处理、图像尖锐化处理等。 图像增强技术主要包括:直方图修改处理,图像平滑处理,图像尖锐化处理,彩色图像处理。从纯技术上讲主要有两类:频域处理法和空域处理法。 频域处理法主要是卷积定理,采用修改图像傅立叶变换的方法实现对图像的增强处理技术;空域处理法:是直接对图像中的像素进行处理,基本上是以灰度映射变换为基础的。

图像处理matlab程序实例

程序实例 1旋转: x=imread('d:\MATLAB7\work\flower.jpg'); y=imrotate(x,200,'bilinear','crop'); subplot(1,2,1); imshow(x); subplot(1,2,2); imshow(y) 2.图像的rgb clear [x,map]=imread('D:\Program Files\MATLAB\R2012a\bin\shaohaihe\shh1.jpg');y=x(90:95,90:95);imshow(y)R=x(90:95,90:95,1);G=x(90:95,90:95,2);B=x(90:95,90:95,3);R,G,B 3.加法运算clear I=imread('D:\Program Files\MATLAB\R2012a\bin\shaohaihe\shh3.jpg');J=imnoise(I,'gaussian',0,0.02);%向图片加入高斯噪声subplot(1,2,1),imshow(I);%显示图片subplot(1,2,2),imshow(J);K=zeros(242,308);%产生全零的矩阵,大小与图片的大小一样for i=1:100%循环100加入噪声J=imnoise(I,'gaussian',0,0.02);J1=im2double(J);K=K+J1;end K=K/100; figure,imshow(K);save

4.减法 clear I=imread('D:\Program Files\MATLAB\R2012a\bin\shaohaihe\shao.jpg'); J=imread('D:\Program Files\MATLAB\R2012a\bin\shaohaihe\shao1.jpg'); K=imsubtract(I,J);%实现两幅图相减 K1=255-K;%将图片求反显示 figure;imshow(I); title('有噪声的图'); figure;imshow(J); title('原图'); figure;imshow(K1); title('提取的噪声'); save 5.图像的乘法 H=imread('D:\Program Files\MATLAB\R2012a\bin\shaohaihe\shao.jpg'); I=immultiply(H,1.2);将此图片乘以1.2 J=immultiply(H,2); subplot(1,3,1),imshow(H); title('原图'); subplot(1,3,2),imshow(I); title('·放大1.2'); subplot(1,3,3),imshow(J); title('放大2倍'); 6除法运算 moon=imread('moon.tif'); I=double(moon); J=I*0.43+90; K=I*0.1+90; L=I*0.01+90; moon2=uint8(J); moon3=uint8(K); moon4=uint8(L); J=imdivide(moon,moon2); K=imdivide(moon,moon3); L=imdivide(moon,moon4); subplot(2,2,1),imshow(moon); subplot(2,2,2),imshow(J,[]); subplot(2,2,3),imshow(K,[]); subplot(2,2,4),imshow(L,[]);

Matlab7操作大全

A a abs绝对值、模、字符的ASCII码值acos反余弦 acosh反双曲余弦 acot反余切 acoth反双曲余切 acsc反余割 acsch反双曲余割 align启动图形对象几何位置排列工具all所有元素非零为真 angle相角 ans表达式计算结果的缺省变量名any所有元素非全零为真 area面域图 argnames函数M文件宗量名 asec反正割 asech反双曲正割 asin反正弦 asinh反双曲正弦 assignin向变量赋值 atan反正切 atan2四象限反正切 atanh反双曲正切 autumn红黄调秋色图阵 axes创建轴对象的低层指令 axis控制轴刻度和风格的高层指令 B b bar二维直方图 bar3三维直方图 bar3h三维水平直方图 barh二维水平直方图 base2dec X进制转换为十进制 bin2dec二进制转换为十进制blanks创建空格串 bone蓝色调黑白色图阵 box框状坐标轴 break while或for环中断指令brighten亮度控制 C c

capture(3版以前)捕获当前图形 cart2pol直角坐标变为极或柱坐标 cart2sph直角坐标变为球坐标 cat串接成高维数组 caxis色标尺刻度 cd指定当前目录 cdedit启动用户菜单、控件回调函数设计工具cdf2rdf复数特征值对角阵转为实数块对角阵ceil向正无穷取整 cell创建元胞数组 cell2struct元胞数组转换为构架数组 celldisp显示元胞数组内容 cellplot元胞数组内部结构图示 char把数值、符号、内联类转换为字符对象chi2cdf分布累计概率函数 chi2inv分布逆累计概率函数 chi2pdf分布概率密度函数 chi2rnd分布随机数发生器 chol Cholesky分解 clabel等位线标识 cla清除当前轴 class获知对象类别或创建对象 clc清除指令窗 clear清除内存变量和函数 clf清除图对象 clock时钟 colorcube三浓淡多彩交叉色图矩阵 colordef设置色彩缺省值 colormap色图 colspace列空间的基 close关闭指定窗口 colperm列排序置换向量 comet彗星状轨迹图 comet3三维彗星轨迹图 compass射线图 compose求复合函数 cond(逆)条件数 condeig计算特征值、特征向量同时给出条件数condest范-1条件数估计 conj复数共轭 contour等位线 contourf填色等位线 contour3三维等位线

数字图像处理MATLAB程序【完整版】

第一部分数字图像处理

实验一图像的点运算 实验1.1直方图 一.实验目的 1 ?熟悉matlab图像处理工具箱及直方图函数的使用; 2?理解和掌握直方图原理和方法; 二.实验设备 1. PC 机一台; 2.软件matlab。 三.程序设计 在matlab环境中,程序首先读取图像,然后调用直方图函数,设置相关参数,再输出处理后的图像。l=imread('camerama n.tif);% 读取图像 subplot(1,2,1),imshow(l) % 输出图像 title(' 原始图像')% 在原始图像中加标题subplot(1,2,2),imhist(l) % 输出原图直方图 title(' 原始图像直方图')%在原图直方图上加标题 四.实验步骤 1. 启动matlab 双击桌面matlab图标启动matlab 环境; 2. 在matlab命令窗口中输入相应程序。书写程序时,首先读取图像,一般调用matlab自带的图像, 如:cameraman图像;再调用相应的直方图函数,设置参数;最后输出处理后的图像; 3?浏览源程序并理解含义; 4. 运行,观察显示结果; 5. 结束运行,退出; 五.实验结果 观察图像matlab环境下的直方图分布。 (a)原始图像(b) 原始图像直方图 六.实验报告要求 1、给出实验原理过程及实现代码; 2、输入一幅灰度图像,给出其灰度直方图结果,并进行灰度直方图分布原理分析。

实验1.2灰度均衡 一.实验目的 1 .熟悉matlab图像处理工具箱中灰度均衡函数的使用; 2?理解和掌握灰度均衡原理和实现方法; 二.实验设备 1. PC机一台; 2. 软件matlab ; 三.程序设计 在matlab环境中,程序首先读取图像,然后调用灰度均衡函数,设置相关参数,再输出处理后的图像。l=imread('camerama n.tif);% 读取图像 subplot(2,2,1),imshow(l) % 输出图像title(' 原始图像')% 在原始图像中加标题subplot(2,2,3),imhist(l) % 输出原图直方图 title(' 原始图像直方图')%在原图直方图上加标题a=histeq(l,256); % 直方图均衡化,灰度级为256 subplot(2,2,2),imshow(a) % 输出均衡化后图像title(' 均衡化后图像')%在均衡化后图像中加标题 subplot(2,2,4),imhist(a) % 输出均衡化后直方图 title(' 均衡化后图像直方图')%在均衡化后直方图上加标题 四.实验步骤 1. 启动matlab 双击桌面matlab图标启动matlab 环境; 2. 在matlab命令窗口中输入相应程序。书写程序时,首先读取图像,一般调用matlab自带的图像, 如:cameraman图像;再调用相应的灰度均衡函数,设置参数;最后输出处理后的图像; 3?浏览源程序并理解含义; 4. 运行,观察显示结果; 5. 结束运行,退出; 五.实验结果 观察matlab环境下图像灰度均衡结果及直方图分布。 均衡化后图像

matlab心得及学习方法(不断更新)

竭诚为您提供优质文档/双击可除matlab心得及学习方法(不断更新) 篇一:matlab心得及学习方法 matlab心得及学习方法(不断更新) 发现现在很多人(找工作的或者读博的)都想要学习或者正在学习matlab,问我要怎么学习。其实我虽然写matlab 代码的经验还算丰富,但是还不能说是一个很好的matlab 编程人员,这里有一些心得,分享给大家希望对大家有所帮助。 关于如何学习matlab 我的学习方法很简单:matlab是练出来的,而不是看出来的。很多人问我有没有比较好的matlab教材,我说随便 找一本吧,都可以。只要书里面有最基本的语法和命令,对于一个有编程基础的人,matlab可以在一个下午的时间内学会。当然,仅仅是学会。如果想要对matlab比较得心应手,那么最好的办法就是练习。练习的素材很多,比如对于学经济学的,可以做一些simulation之类的,也可以试着把计 量或者宏观教材里面的一些算法写写出来。一开始可能很慢,

但是当你完成了一个比较大的project的时候,你的matlab 的功力将会有巨大的提升。 当然,在你写程序之前,多读一些别人写的好的code 是非常有帮助的。 一些matlab的经验 1、适当了解一些数值计算、数值分析以及最优化的理论 用matlab的无非是做数值计算或者最优化,这也是matlab的强项,matlab有足够多的工具箱解决这些问题。但是在使用这些工具箱之前,应该首先了解一些数值计算以及最优化的理论。这一点在程序碰到问题或者计算结果不理想的时候尤为重要。很多时候结果不理想并不是自己的理论出了问题,而是盲目或者错误使用matlab的工具箱而导致的。比如我曾经做过一个单纯形法的优化程序,但是结果总是不理想,这个时候就要返回到单纯形法具体是一种什么样的算法来考虑这个问题,最后发现是由于目标函数的某一部分十分平缓导致的。当然更重要的是如果你不理解理论,很多问题根本不知道如何处理。有个学化学同学就曾问我一个程序怎么写,说matlab肯定可以完成的。了解清楚之后才明白原来他想做的就是一个受限最小二乘。但是他不懂得什么是最小二乘(因为没怎么学过数学),当然面对这个问题无从下手。

Matlab在解析几何中的应用

Matlan软件在解析几何中的应用 (作者:李世兴宁夏北方民族大学750021 ) 摘要:在解析几何教学和学习过程中,有些复杂的几何图形是无法用简单的工具画出的,动点轨迹问题的教学和学习由传统教学手段也是无法实现的,而Matlab软件具有强大的图形设计功能,正好弥补了传统教学和学习的不足,利用Matlab语言编程制出空间几何图形,有利于直观形象地判定空间图形的相关位置,也有利于观察动点轨迹的形成。这样的教学和学习方式不仅可以取得良好的教学效果,还能提高学生的学习兴趣。 关键词: MATLAB;解析几何;教学和学习; 一.引言: 解析几何是我们数学专业几何学课程体系的基础,它是中学数学课程中几何学的延伸和推广。既然是几何顾名思义这门学科要求学生有一定的空间想象能力和空间构图能力。但是,目前的大多数学校在解析几何的教学中的方法还是比较陈旧没有随着计算机技术的发展而即使更新,教学手段比较落后,就例举解析几何中曲线及曲面的形成过程与变换过程而言,只通过传统的教师讲授、静态图示表示出来,一方面不够生动,另一方面也不够准确,这些都是目前解析几何教学中的不足。而这样的不足用MATLAB就可以很好的解决。在几何教学中应用MATLAB可以把曲线、曲面准确地模拟出来,对教学效率提高和学生的空间想象能力的培养都有事半功倍的作用。而且应用MATLAB的绘图功能,就可以美观又准确绘制图形而且许多老师在黑板上难以画出来的复杂图形对MATLAN来说都不是问题。其次MATLAB 绘图函数都不是非常复杂的函数,例如:绘线的函数Plot()、描点的函数catter()、绘线的函数plot3()、绘制网面图的函数surf()等。 1.解析几何中的线关系相对于后面的空间曲面比较简单,比如直线的平行,相交,垂直, 异位都是中学阶段的知识。下面我们用MATLAB演示一个相对复杂的空间曲线; 程序:ezplot3('3*t*cos(t)','3*t*sin(t)','t^1/3',[0,60]);

MATLAB图像处理简介

MATLAB图像处理基础?MATLAB语言的特点: MATLAB图像处理基础 ?典型桌面: 2 MATLAB图像处理基础 ?一. 读取图像:将图像rose-orginal.tif读入图像数组f >> f = imread('.\rose-original.tif'); ?显示图像大小信息: >> size(f) ans = 1024 1024 或者将大小信息赋给变量 ?或者将大小信息赋给变量: >> [M, N] = size(f); ?whos显示更为详细的信息: >> whos f Name Size Bytes Class f 1024x1024 1048576 uint8 array Grand total is 1048576 elements using 1048576 bytes 3 MATLAB图像处理基础 ?二. 显示图像: >> imshow(f) ?指定显示的灰度范围 >> figure, imshow(f, [100 200]) ?情况下显示图像的整个 动态范围: >> figure, imshow(f, [ ]) 4 MATLAB图像处理基础 ?直接显示: >> imshow(h)?改善动态范围: >> imshow(h, [ ]) 利用imshow改善图像动态范围(设图像已被读入到h): 5 MATLAB图像处理基础 ?以交互方式显示像素值: >> pixval ?利用pixval显示像素之间 距离:按下鼠标左键并拖 动 6

MATLAB图像处理基础 ?三. 将图像写入磁盘: >> imwrite(f, 'rose.jpg') ?对于JPEG压缩格式,可指定质量因子: >> imwrite(f, 'rose.jpg', 'quality', 25) 7 quality = 100quality = 50quality = 5 MATLAB图像处理基础?显示图像信息: >> imfinfo rose.jpg MATLAB图像处理基础?计算压缩率:将图像信息存储在结构变量中以方 MATLAB图像处理基础?四. MATLAB中的数据类型: MATLAB图像处理基础?五. MATLAB中的图像类型: MATLAB图像处理基础 ?六. 图像类型的相互转换:下表中的函数在图像类型转换中会进行必要的数据比例变换。 12 >> f = [-0.5 0.5;0.75 1.5] f = -0.5000 0.5000 0.7500 1.5000 >> g = im2uint8(f) g = 0 128 191 255 im2unit8将输入double类型数据中小于0的 数转换为0,大于1的数转换为255,其余数 据乘以255再四舍五入到最近整数。

matlab习题

1.请登陆美国MathWorks 公司的网站(https://www.wendangku.net/doc/f68332745.html,),查看看现在大概有多少本MATLAB-based books (以MATLAB 为基本软件,来说明各个专业领域的教科书或工具书)。哪一个领域的MATLAB-based books 最多?中文书共有几本? 2.若有任何MATLAB/Simulink 技术上的问题,可以直接连到MathWorks 公司的技术支持部网站(https://www.wendangku.net/doc/f68332745.html,/support) 寻求支持。请在技术支持部网站的搜寻引擎输入「Web Server」,看会传回多少和MATLAB Web Server 相关的信息。 3.请在MATLAB中直接输入下列常数,看它们的值是多少: a.i b.j c.eps d.inf e.nan f.pi g.realmax h.realmin 4.请使用lookfor 指令,找出具有下列功能的MATLAB 指令。(每一项只需找出一个相关度最高的MATLAB 指令。) a.找出矩阵的大小(即行维度和列维度) b.改变矩阵的大小(例如将4×6 的矩阵改成12×2) c.将矩阵左右翻转(Left-right flip) d.将矩阵上下翻转(Up-down flip) e.找出矩阵每一列的最大值 f.对矩阵的每一列进行排序 g.矩阵的旋转(Rotate) h.逆矩阵(Inverse matrix)的计算 i.求矩阵的秩(rank) j.计算矩阵的行阶梯矩阵reduced row echelon form

k.计算矩阵的特征值(Eigenvalues)与特征向量(Eigenvectors) l.直角坐标转成极坐标 m.极坐标转成直角坐标 5.写一个MATLAB 小程序findN01.m,求出最小的n 值,使得n! > realmax。请问n 的值是多少?此时(n-1)! 的值又是多少? 6.MATLAB 的sqrt 指令可对任一数值进行开平方的运算。用此指令求出下列各数的平方根,并验算之: a. b.2*i c.-5+12*i 其中i 是单位虚数。 7.写一个MATLAB 函数myFun.m 来计算下列方程式: y = 0.5*exp(x/3)-x*x*sin(x) 其中x 是函数的输入,y 是函数的输出。你的函数必须能够处理当x 是标量或是向量的两种情况。此外,请利用下述两列程序代码来画出此函数的图形: x=0:0.1:10; plot(x, myFun(x)); 8.写一个MATLAB 函数piFun.m 来计算下列级数: f(n) = 4*(1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + ...) 其中n 为函数的输入,代表上述级数的项数,级数和f(n) 则是函数的输出。 9.使用tic 和toc 指令来测量piFun(100000) 的计算时间。请说明你的计算机规格以及其计算时间。 10.请写一个函数minxy.m,其功能是由一个二维矩阵中找出小元素,用法如下: [minValue, minIndex] = minxy(matrix)

第4章 MATLAB图像处理习题习题

MATLAB图像处理相关习题实例1:三角函数曲线(1) function shili01 h0=figure('toolbar','none','position',[198 56 350 300],'name','实例01'); h1=axes('parent',h0,'visible','off'); x=-pi:0.05:pi; y=sin(x); plot(x,y); xlabel('自变量X'); ylabel('函数值Y'); title('SIN( )函数曲线'); grid on 实例2:图形的叠加 function shili02 h0=figure('toolbar','none',... 'position',[200 150 450 350],... 'name','实例02'); x=-pi:0.05:pi; y1=sin(x); y2=cos(x); plot(x,y1,... '-*r',... x,y2,... '--og'); grid on xlabel('自变量X'); ylabel('函数值Y'); title('三角函数'); 实例3:双y轴图形的绘制 function shili03 h0=figure('toolbar','none',... 'position',[200 150 450 250],... 'name','实例03'); x=0:900;a=1000;b=0.005; y1=2*x; y2=cos(b*x); [haxes,hline1,hline2]=plotyy(x,y1,x,y2,'semilogy','plot'); axes(haxes(1)) ylabel('semilog plot'); axes(haxes(2)) ylabel('linear plot'); 实例4:单个轴窗口显示多个图形 function shili04

MATLAB图像处理的几个应用实例_王秋雨

福建电脑2011年第11期 MATLAB图像处理的几个应用实例 王秋雨 (河南大学计算机与信息工程学院河南开封475004) 【摘要】:MATLAB处理矩阵之类的问题具有明显优势,而数字图像以矩阵形式存储于计算机中,因此MATLAB在图像处理中得到广泛应用。本文通过实例阐述MATLAB在图像处理中的应用,以图像增强、图像压缩、图像去噪为例,给出了实现图像处理的程序代码和图像处理前后的可视化效果对比。 【关键词】:图像增强;图像压缩;图像去噪 1、引言 图像是人类赖以获取信息的最重要来源之一。图像技术与计算机技术不断融合,出现了一系列图像处理软件,其中最典型的是MATLAB,该软件为图像技术的发展提供了强大支持[1,2]。MATLAB(Matrix Laborato-ry)是矩阵实验室的简称,最基本的数据结构是数组,数字图像用数组(矩阵)存储,矩阵中的一个元素对应于图像的一个像素,这意味着MATLAB矩阵运算功能可以应用于图像处理[3]。MATLAB已成为国际公认的最优秀的科技应用软件之一,具有编程简单、数据可视化功能强、可操作性强等特点,而且配有功能强大、专业函数丰富的图像处理工具箱,是图像处理的一个重要软件工具。 数字图像处理(Digital Image Processing)是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术[1,2]。一般来讲,图像处理主要包括三个方面: ⑴提高图像的视感质量,如改变图像亮度和彩色,增强或抑制某些成分,对图像进行几何变换等,以改善图像的质量。 ⑵提取图像中所包含的某些特征或特殊信息,所提取出来的特征或信息往往为计算机分析图像提供便利。提取的特征包括很多方面,如频域特征、灰度特征、颜色特征、边界特征、区域特征、文理特征、形状特征、拓扑特征和关系结构等。 ⑶图像数据的变换、编码和压缩,以便于图像的存储和传输。 数字图像处理的过程其实就是对图像的一种运算过程,从技术上来说,数字图像处理分为空间域和频率域处理。本文通过几个应用实例,验证了MATLAB图像处理所得到的效果。 2、图像增强的应用 如果不考虑图像降质,仅突出图像中所感兴趣的部分,可以强化图像的某些分量。例如,强化图像高频分量,可使图像中物体轮廓清晰、细节明显;强化低频分量可以减少图像中噪声的影响。图像复原要求对图像降质的原因有一定的了解,一般讲应根据降质过程建立降质模型,再采用某种滤波方法,恢复或重建原来的图像[4]。 小波分析方法在图像处理方面具有很多优点。经二维小波分解后,图像的轮廓主要体现在低频部分,而细节部分则体现在高频部分。因此,通过对低频分解系数进行增强处理,对高频分解系数进行衰减处理,即可以达到图像增强的作用。MATLAB用于图像增强的一个实例如下: function exam1() I=imread('…\lena.bmp'); subplot(1,2,1);imshow(I) colormap(gray);title('原始图像') [a,b]=wavedec2(I,2,'sym4');len=length(a); for i=1:len if(a(i)>300) a(i)=2*a(i); else a(i)=0.5*a(i); end end nx=waverec2(a,b,'sym4');subplot(1,2,2); image(nx); title('增强图像') 图1是一幅图像增强前后的可视化效果对比,经过MATLAB的图像增强处理,图像轮廓更加清晰。在某些情况下,采用MATLAB对图像进行增加,可以得到实际应用效果。 基金项目:国家自然科学基金(11001075) . 6

基于matlab的人脸识别算法(PCA)

模式识别期末报告 (人脸识别) 院系:信息与控制学院 专业:信息工程(系统工程方向)姓名:夏清 学号: 20111325041 2013年 12 月 20 日

一问题描述 对于一幅图像可以看作一个由像素值组成的矩阵,也可以扩展开,看成一个矢量,如一幅 N*N 象素的图像可以视为长度为N2 的矢量,这样就认为这幅图像是位于N2 维空间中的一个点,这种图像的矢量表示就是原始的图像空间,但是这个空间仅是可以表示或者检测图像的许多个空间中的一个。不管子空间的具体形式如何,这种方法用于图像识别的基本思想都是一样的,首先选择一个合适的子空间,图像将被投影到这个子空间上,然后利用对图像的这种投影间的某种度量来确定图像间的相似度,最常见的就是各种距离度量。因此,本次试题采用PCA算法并利用GUI实现。 对同一个体进行多项观察时,必定涉及多个随机变量X1,X2,…,Xp,它们都是的相关性, 一时难以综合。这时就需要借助主成分分析来概括诸多信息的主要方面。我们希望有一个或几个较好的综合指标来概括信息,而且希望综合指标互相独立地各代表某一方面的性质。 任何一个度量指标的好坏除了可靠、真实之外,还必须能充分反映个体间的变异。如果有一项指标,不同个体的取值都大同小异,那么该指标不能用来区分不同的个体。由这一点来看,一项指标在个体间的变异越大越好。因此我们把“变异大”作为“好”的标准来寻求综合指标。二主成分的一般定义 设有随机变量X1,X2,…,Xp,其样本均数记为,,…,,样本标准差记为S1,S2,…,Sp。首先作标准化变换,我们有如下的定义: (1) 若C1=a11x1+a12x2+ … +a1pxp,…,且使 Var(C1)最大,则称C1为第一主成分; (2) 若C2=a21x1+a22x2+…+a2pxp,…,(a21,a22,…,a2p)垂直于(a11,a12,…,a1p),且使Var(C2)最大,则称C2为第二主成分; (3) 类似地,可有第三、四、五…主成分,至多有p个。 三主成分的性质 主成分C1,C2,…,Cp具有如下几个性质: (1) 主成分间互不相关,即对任意i和j,Ci 和Cj的相关系数 Corr(Ci,Cj)=0 i j (2) 组合系数(ai1,ai2,…,aip)构成的向量为单位向量, (3) 各主成分的方差是依次递减的,即 Var(C1)≥Var(C2)≥…≥Var(Cp) (4) 总方差不增不减,即 Var(C1)+Var(C2)+ … +Var(Cp)

相关文档