基于matlab的数字图像处理常用函数

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

基本界面

1-1、基本运算与函数

在MATLAB下进行基本数学运算,只需将运算式直接打入提示号(>>)之後,并按入Enter键即可。例如:

>> (5*2+1.3-0.8)*10/25

ans =4.2000

MATLAB会将运算结果直接存入一变数ans,代表MATLAB运算後的答案(Answer)并显示其数值於萤幕上。

小提示:">>"是MATLAB的提示符号(Prompt),但在PC中文视窗系统下,由於编码方式不同,此提示符号常会消失不见,但这并不会影响到MATLAB的运算结果。

我们也可将上述运算式的结果设定给另一个变数x:

x = (5*2+1.3-0.8)*10^2/25

x = 42

若要输入矩阵,则必须在每一列结尾加上分号(;),如下例:

A = [1 2 3 4; 5 6 7 8; 9 1011 12];

A =

1 2 3 4

5 6 7 8

9 10 11 12

同样地,我们可以对矩阵进行各种处理:

A(2,3) = 5 % 改变位於第二列,第三行的元素值

A =

1 2 3 4

5 6 5 8

9 10 11 12

B = A(2,1:3) % 取出部份矩阵B

B = 5 6 5

A = [A B'] % 将B转置後以列向量并入A

A =

1 2 3 4 5

5 6 5 8 6

9 10 11 12 5

A(:, 2) = [] % 删除第二行(:代表所有列)

A =

1 3 4 5

5 5 8 6

9 11 12 5

A = [A; 4 3 2 1] % 加入第四列

A =

1 3 4 5

5 5 8 6

9 11 12 5

4 3 2 1

A([1 4], :) = [] % 删除第一和第四列(:代表所有行)

A =

5 5 8 6

9 11 12 5

这几种矩阵处理的方式可以相互叠代运用,产生各种意想不到的效果,就看各位的巧思和创意。

小提示:在MATLAB的内部资料结构中,每一个矩阵都是一个以行为主(Column-oriented )的阵列(Array)因此对於矩阵元素的存取,我们可用一维或二维的索引(Index)来定址。举例来说,在上述矩阵A中,位於第二列、第三行的元素可写为A(2,3) (二维索引)或A(6)(一维索引,即将所有直行进行堆叠後的第六个元素)。

此外,若要重新安排矩阵的形状,可用reshape命令:

B = reshape(A, 4, 2) % 4是新矩阵的行数,2是新矩阵的列数

B =

5 8

9 12

5 6

11 5

小提示:A(:)就是将矩阵A每一行堆叠起来,成为一个列向量,而这也是MATLAB变数的内部储存方式。以前例而言,reshape(A, 8, 1)和A(:)同样都会产生一个8x1的矩阵。

1,图像的读入和显示:

(1)图像读入:A=imread('文件名',文件格式)

[X,map]=imread('文件名') %X代表索引图像矩阵,map为颜色映射表

(2)图像显示:image(A);

2. 图像写回

A=imwrite('文件名',文件格式)

[X,map]=imwrite('文件名')%注意,当只写文件名时,它应带有扩展名

3.获取图像信息

info=imfinfo('文件名') 4.标准图像显示技术

(1)imshow(I,n)%显示灰度图像,n为灰度级数

(2)imshow(I,[low,high])%[low,high]为图像数据的值域(可为空[ ])

(3)imshow(BW)%显示二值图像

(4)imshow(X,map)%显示索引色图像

5.图像的运算

(1)Z=imadd(X,Y)%图像的加运算,X,Y是输入的两幅图像,其中一个可以是常数

(2)Z=imsubtract(X,Y)%图像的减运算,Y可以是常数

(3)Z=immiltiply(X,y)%图像的乘运算,Y也可以是常数

(4)Z=imdivide(X,y)%图像的除运算,Y也可以是常数

6.图像的类型转换

(1)RGB=ind2rgb(X,map)%索引图转换为真彩色图

(2)I=mat2gray(A)%将一个数据矩阵转换为灰度图

(3)I=rgb2gray(RGB)%将一副灰度图转换为真彩色图

(4)[X,map]=rgb2ind(RGB,n)%将RGB图转换为索引色图

(5)BW=im2bw(I,level)%将真彩色图或灰度图转换为二值图,level为阈值

BW=im2bw(X,map,level)%将索引色图转换为二值图

(6)I=ind2gray(X,map)%将索引色图转换为灰度图

7.傅里叶变换

(1)Y=fft2(x,m,n)%二维离散傅里叶快速变换,x为要进行傅里叶变换的矩阵,m、n是返回的变换矩阵Y的行数和列数。

(2)Y=ifft2(x,m,n)%二维离散傅里叶反变换

(3)Y1=fftshift(Y)%把傅里叶变换操作得到的结果中零频率成分移到矩阵中心,这样利于观察频谱。

8.离散余弦变换

(1)D=dct2(A,m,n)%二维离散余弦变换,A是输入图像,B是返回的DCT变换系数,m、n为D的行数和列数(2)D=idct(A,m,n)%e二维离散余弦逆变换。

(3)D=dctmtx(n)%返回DCT变换矩阵

9.Radon变换

[R,xp]=radon(I,theta)%I为图像矩阵,theta为角度

I=iradon(R,thrta)%逆Radon变换

10.图像的增强(1)

(1)imhist(I)%显示一副图像的直方图

(2)J=histeq(I)%直方图均衡化

(3)J=imadjust(I,[low_in;high_in],[low_out;high_out],gamma)%调整图像灰度值

(4)J=adapthisteq(I)%有限对比自适应直方图均衡化

(5)S=decorrestretch(I)%去相关色度拉伸

11.图像的增强(2)

B=imfilter(A,H,option1,option2,...)

A是输入图像,H是卷积核或相关核,option是一些可选参数。

注:权重矩阵称为卷积核,也称为滤波器。卷积核是相关核旋转180度得到的,可选参数参看help

其中H也用H=fspecial(type,parameters)可自定义

12.中值滤波器

B=medfilt2(A,[m,n])%A是输入的图像,[m,n]是邻域的大小

相关文档
最新文档