当前位置:文档之家› MATLAB图像操作命令大全

MATLAB图像操作命令大全

MATLAB图像操作命令大全
MATLAB图像操作命令大全

MATLAB常用图像操作

一. 读写图像文件

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 显示为白色。

数字图像处理_旋转与幅度谱(含MATLAB代码)

数字图像处理实验一 15生医 一、实验内容 产生右图所示图像 f1(m,n),其中图像大小为256 ×256,中间亮条为128×32,暗处=0,亮处=100。 对其进行FFT: ①同屏显示原图f1(m,n)和FFT(f1)的幅度谱图; ②若令f2(m,n)=(-1)^(m+n)f1(m,n),重复 以上过程,比较二者幅度谱的异同,简述理由; ③若将f2(m,n)顺时针旋转90度得到f3(m,n),试显示FFT(f3)的 幅度谱,并与FFT(f2)的幅度谱进行比较; ④若将f1(m,n) 顺时针旋转90度得到f4(m,n),令f5(m,n) = f1(m,n) + f4(m,n),试显示FFT(f5)的幅度谱,指出其与 FFT(f1)和FFT(f4)的关系; ⑤若令f6(m,n)=f2(m,n)+f3(m,n),试显示FFT(f6)的幅度谱,并指出其与 FFT(f2)和FFT(f3)的关系,比较FFT(f6)和FFT(f5)的幅度谱。 二、运行环境 MATLAB R2014a 三、运行结果及分析 1.同屏显示原图f1(m,n)和FFT(f1)的幅度谱图:

50100150200250 100150200250 50100150200250 100150200250 2.令f2(m,n)=(-1)^(m+n )f1(m,n),对其进行FFT ,比较f2与f1幅度谱的异同,简述理由: 50100150200250 100150200250 50100150200250 100150200250 异同及理由:①空域:f2由于前边乘了系数(-1)^(m+n ),导致灰度值有正有负,而在MATLAB 的imshow 函数中默认把负值变为0(有些情况是取反),所以形成了如左图所示的黑白花纹。②频域:FFT(2)

非常全非常详细的MATLAB数字图像处理技术

MATLAB数字图像处理 1 概述 BW=dither(I)灰度转成二值图; X=dither(RGB,map)RGB转成灰度图,用户需要提供一个Colormap; [X,map]=gray2ind(I,n)灰度到索引; [X,map]=gray2ind(BW,n)二值图到索引,map可由gray(n)产生。灰度图n 默认64,二值图默认2; X=graylice(I,n)灰度图到索引图,门限1/n,2/n,…,(n-1)/n,X=graylice(I,v)给定门限向量v; BW=im2bw(I,level)灰度图I到二值图; BW=im2bw(X,map,level)索引图X到二值图;level是阈值门限,超过像素为1,其余置0,level在[0,1]之间。 BW=im2bw(RGB,level)RGB到二值图; I=ind2gray(X,map)索引图到灰度图; RGB=ind2rgb(X,map)索引图到RGB; I=rgb2gray(RGB)RGB到灰度图。 2 图像运算 2.1图像的读写 MATLAB支持的图像格式有bmp,gif,ico,jpg,png,cur,pcx,xwd和tif。 读取(imread): [1]A=imread(filename,fmt) [2] [X,map]=imread(filename,fmt) [3] […]=imread(filename) [4] […]=imread(URL,…) 说明:filename是图像文件名,如果不在搜索路径下应是图像的全路径,fmt是图像文件扩展名字符串。前者可读入二值图、灰度图、彩图(主要是RGB);第二个读入索引图,map 为索引图对应的Colormap,即其相关联的颜色映射表,若不是索引图则map为空。URL表示引自Internet URL中的图像。 写入(imwrite): [1] R=imwrite(A,filename,fmt); [2] R=imwrite(X,map,filename,fmt); [3] R=imwrite(…,filename); [4] R=imwrite(…,Param1,Val1,Param2,Val2) 说明:针对第四个,该语句用于指定HDF,JPEG,PBM,PGM,PNG,PPM,TIFF等类型输出文件的不同参数。例如HDF的Quality,Compression,WriteMode;JPEG的BitDepth,Comment:Emptyor not,Mode:lossy orlossless,Quality等。 2.2 图像的显示 方法1:使用Image Viewer(图像浏览器),即运用imview函数。

Matlab 图像处理相关函数命令大全

Matlab 图像处理相关函数命令大全 一、通用函数: colorbar 显示彩色条 语法:colorbar \ colorbar('vert') \ colorbar('horiz') \ colorbar(h) \ h=colorbar(...) \ colorbar(...,'peer',axes_handle) getimage 从坐标轴取得图像数据 语法:A=getimage(h) \ [x,y,A]=getimage(h) \ [...,A,flag]=getimage(h) \ [...]=getimage imshow 显示图像 语法:imshow(I,n) \ imshow(I,[low high]) \ imshow(BW) \ imshow(X,map) \ imshow(RGB)\ imshow(...,display_option) \ imshow(x,y,A,...) \ imshow filename \ h=imshow(...) montage 在矩形框中同时显示多幅图像 语法:montage(I) \ montage(BW) \ montage(X,map) \ montage(RGB) \ h=montage(...) immovie 创建多帧索引图的电影动画 语法:mov=immovie(X,map) \ mov=immovie(RGB) subimage 在一副图中显示多个图像 语法:subimage(X,map) \ subimage(I) \ subimage(BW) \ subimage(RGB) \ subimage(x,y,...) \ subimage(...) truesize 调整图像显示尺寸 语法:truesize(fig,[mrows mcols]) \ truesize(fig)

matlab图像处理代码

附录 MATLAB图像处理命令  1.applylut  功能: 在二进制图像中利用lookup表进行边沿操作。 语法: A = applylut(BW,lut) 举例 lut = makelut('sum(x(:)) == 4',2); BW1 = imread('text.tif'); BW2 = applylut(BW1,lut); imshow(BW1) figure, imshow(BW2) 相关命令: makelut 2.bestblk  功能: 确定进行块操作的块大小。 语法: siz = bestblk([m n],k) [mb,nb] = bestblk([m n],k) 举例 siz = bestblk([640 800],72) siz = 64 50 相关命令: blkproc 3.blkproc  功能:

MATLAB 高级应用——图形及影像处理 320 实现图像的显式块操作。 语法: B = blkproc(A,[m n],fun) B = blkproc(A,[m n],fun,P1,P2,...) B = blkproc(A,[m n],[mborder nborder],fun,...) B = blkproc(A,'indexed',...) 举例 I = imread('alumgrns.tif'); I2 = blkproc(I,[8 8],'std2(x)*ones(size(x))'); imshow(I) figure, imshow(I2,[]); 相关命令: colfilt, nlfilter,inline 4.brighten  功能: 增加或降低颜色映像表的亮度。 语法: brighten(beta) newmap = brighten(beta) newmap = brighten(map,beta) brighten(fig,beta) 相关命令: imadjust, rgbplot 5.bwarea  功能: 计算二进制图像对象的面积。 语法: total = bwarea(BW) 举例 BW = imread('circles.tif'); imshow(BW);

基于Matlab基本图像处理程序

图像读入 ●从图形文件中读入图像 imread Syntax: A = imread(filename, fmt) filename:指定的灰度或彩色图像文件的完整路径和文件名。 fmt:指定图形文件的格式所对应的标准扩展名。如果imread没有找到filename所制定的文件,会尝试查找一个名为filename.fmt的文件。 A:包含图像矩阵的矩阵。对于灰度图像,它是一个M行N列的矩阵。如果文件包含 RGB真彩图像,则是m*n*3的矩阵。 ●对于索引图像,格式[X, map] = imread(filename, fmt) X:图像数据矩阵。 MAP:颜色索引表 图像的显示 ●imshow函数:显示工作区或图像文件中的图像 ●Syntax: imshow(I) %I是要现实的灰度图像矩阵 imshow(I,[low high],param1, val1, param2, val2,...) %I是要现实的灰度图像矩阵,指定要显示的灰度范围,后面的参数指定显示图像的特定参数 imshow(RGB) imshow(BW) imshow(X,map) %map颜色索引表 imshow(filename) himage = imshow(...) ●操作:读取并显示图像 I=imread('C:\Users\fanjinfei\Desktop\baby.bmp');%读取图像数据 imshow(I);%显示原图像 图像增强 一.图像的全局描述 直方图(Histogram):是一种对数据分布情况的图形表示,是一种二维统计图表,它的两个坐标分别是统计样本和该样本对应的某个属性的度量。 图像直方图(Image Histogram):是表示数字图像中亮度分布的直方图,用来描述图象灰度值,标绘了图像中每个亮度值的像素数。 灰度直方图:是灰度级的函数,它表示图像中具有某种灰度级的像素的个数,反映了图 像中某种灰度出现的频率。描述了一幅图像的灰度级统计信息。是一个二维图,横坐标为图像中各个像素点的灰度级别,纵坐标表示具有各个灰度级别的像素在图像中出现的次数或概率。 归一化直方图:直接反应不同灰度级出现的比率。纵坐标表示具有各个灰度级别的像

数字图像处理matlab代码

一、编写程序完成不同滤波器的图像频域降噪和边缘增强的算法并进行比较,得出结论。 1、不同滤波器的频域降噪 1.1 理想低通滤波器(ILPF) I1=imread('eight.tif'); %读取图像 I2=im2double(I1); I3=imnoise(I2,'gaussian',0.01); I4=imnoise(I3,'salt & pepper',0.01); figure,subplot(1,3,1); imshow(I2) %显示灰度图像 title('原始图像'); %为图像添加标题 subplot(1,3,2); imshow(I4) %加入混合躁声后显示图像 title('加噪后的图像'); s=fftshift(fft2(I4)); %将灰度图像的二维不连续Fourier 变换的零频率成分 移到频谱的中心 [M,N]=size(s); %分别返回s的行数到M中,列数到N中n1=floor(M/2); %对M/2进行取整 n2=floor(N/2); %对N/2进行取整 d0=40; %初始化d0 for i=1:M for j=1:N d=sqrt((i-n1)^2+(j-n2)^2); %点(i,j)到傅立叶变换中心的距离 if d<=d0 %点(i,j)在通带内的情况 h=1; %通带变换函数 else %点(i,j)在阻带内的情况 h=0; %阻带变换函数 end s(i,j)=h*s(i,j); %ILPF滤波后的频域表示

end end s=ifftshift(s); %对s进行反FFT移动 s=im2uint8(real(ifft2(s))); %对s进行二维反离散的Fourier变换后,取复 数的实部转化为无符号8位整数 subplot(1,3,3); %创建图形图像对象 imshow(s); %显示ILPF滤波后的图像 title('ILPF滤波后的图像(d=40)'); 运行结果: 1.2 二阶巴特沃斯低通滤波器(BLPF) I1=imread('eight.tif'); %读取图像 I2=im2double(I1); I3=imnoise(I2,'gaussian',0.01); I4=imnoise(I3,'salt & pepper',0.01); figure,subplot(1,3,1); imshow(I2) %显示灰度图像 title('原始图像'); %为图像添加标题 subplot(1,3,2); imshow(I4) %加入混合躁声后显示图像 title('加噪后的图像'); s=fftshift(fft2(I4));%将灰度图像的二维不连续Fourier 变换的零频率成分 移到频谱的中心 [M,N]=size(s); %分别返回s的行数到M中,列数到N中n=2; %对n赋初值

matlab 图像处理报告

《 MATLAB 实践》 课程设计 学生姓名: 学号: 专业班级: 指导教师: 二○○九年三月十三日

1.设计目的…………………………………………………第 3页 2.题目分析…………………………………………………第3 页 3.总体设计…………………………………………………第4 页 4.具体设计…………………………………………………第 6页 5.结果分析…………………………………………………第 20页 6.心得体会…………………………………………………第 20页 7.参考书目…………………………………………………第 20页

1 课程设计的目的: 综合运用MATLAB工具箱实现图像处理的GUI程序设计。 2、题目分析 课程设计的基本要求 1)熟悉和掌握MATLAB 程序设计方法 2)掌握MATLAB GUI 程序设计 3)学习和熟悉MATLAB图像处理工具箱 4)学会运用MATLAB工具箱对图像进行处理和分析 课程设计的内容 学习MATLAB GUI程序设计,利用MATLAB图像处理工具箱,设计和实现自己的Photoshop 。要求:按照软件工程方法,根据需求进行程序的功能分析和界面设计,给出设计详细说明。然后按照自己拟定的功能要求进行程序设计和调试。 以下几点是程序必须实现的功能。 1)图像的读取和保存。 2)设计图形用户界面,让用户能够对图像进行任意的亮度和对比度变化调整,显示和对比变换前后的图像。 3)设计图形用户界面,让用户能够用鼠标选取图像感兴趣区域,显示和保存该选择区域。 4)编写程序通过最近邻插值和双线性插值等算法将用户所选取的图像区域进行放大和缩小整数倍的操作,并保存,比较几种插值的效果。 5)图像直方图统计和直方图均衡,要求显示直方图统计,比较直方图均衡后的效果。 6)能对图像加入各种噪声,并通过几种滤波算法实现去噪并显示结果。比较去噪效果。

图像处理实例(含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图像处理报告

基于M A T L A B图像处理报告一、设计题目 图片叠加。 二、设计要求 将一幅礼花图片和一幅夜景图片做叠加运算,使达到烟花夜景的美图效果。 三、设计方案 、设计思路 利用matlab强大的图像处理功能,通过编写程序,实现对两幅图片的像素进行线性运算,利用灰度变换的算法使图片达到预期的效果。 、软件介绍 MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。 MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB 也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户直接进行下载就可以用。

MATLAB图像处理相关函数

一、通用函数: colorbar显示彩色条 语法:colorbar \ colorbar('vert') \ colorbar('horiz') \ colorbar(h) \ h=colorbar(...) \ colorbar(...,'peer',axes_handle) getimage 从坐标轴取得图像数据 语法:A=getimage(h) \ [x,y,A]=getimage(h) \ [...,A,flag]=getimage(h) \ [...]=getimage imshow 显示图像 语法:imshow(I,n) \ imshow(I,[low high]) \ imshow(BW) \ imshow(X,map) \ imshow(RGB)\ imshow(...,display_option) \ imshow(x,y,A,...) \ imshow filename \ h=imshow(...) montage 在矩形框中同时显示多幅图像 语法:montage(I) \ montage(BW) \ montage(X,map) \ montage(RGB) \ h=montage(...) immovie 创建多帧索引图的电影动画 语法:mov=immovie(X,map) \ mov=immovie(RGB) subimage 在一副图中显示多个图像 语法:subimage(X,map) \ subimage(I) \ subimage(BW) \ subimage(RGB) \ subimage(x,y,...) \ subimage(...) truesize 调整图像显示尺寸 语法:truesize(fig,[mrows mcols]) \ truesize(fig) warp 将图像显示到纹理映射表面 语法:warp(X,map) \ warp(I ,n) \ warp(z,...) warp(x,y,z,...) \ h=warp(...) zoom 缩放图像 语法:zoom on \ zoom off \ zoom out \ zoom reset \ zoom \ zoom xon \ zoom yon\ zoom(factor) \ zoom(fig,option) 二、图像文件I/O函数命令 imfinfo 返回图形图像文件信息 语法:info=imfinfo(filename,fmt) \ info=imfinfo(filename) imread 从图像文件中读取(载入)图像 语法:A=imread(filename,fmt) \ [X,map]=imread(filename,fmt) \

最常用的matlab图像处理的源代码

最常用的一些图像处理Matlab源代 码 #1:数字图像矩阵数据的显示及其傅立叶变换 #2:二维离散余弦变换的图像压缩 #3:采用灰度变换的方法增强图像的对比度 #4:直方图均匀化 #5:模拟图像受高斯白噪声和椒盐噪声的影响 #6:采用二维中值滤波函数medfilt2对受椒盐噪声干扰的图像滤波 #7:采用MATLAB中的函数filter2对受噪声干扰的图像进行均值滤波 #8:图像的自适应魏纳滤波 #9:运用5种不同的梯度增强法进行图像锐化 #10:图像的高通滤波和掩模处理 #11:利用巴特沃斯(Butterworth)低通滤波器对受噪声干扰的图像进行平滑处理 #12:利用巴特沃斯(Butterworth)高通滤波器对受噪声干扰的图像进行平滑处理 1.数字图像矩阵数据的显示及其傅立叶变换 f=zeros(30,30); f(5:24,13:17)=1; imshow(f, 'notruesize'); F=fft2(f,256,256); % 快速傅立叶变换算法只能处矩阵维数为2的幂次,f矩阵不 % 是,通过对f矩阵进行零填充来调整 F2=fftshift(F); % 一般在计算图形函数的傅立叶变换时,坐标原点在 % 函数图形的中心位置处,而计算机在对图像执行傅立叶变换 % 时是以图像的左上角为坐标原点。所以使用函数fftshift进 %行修正,使变换后的直流分量位于图形的中心; figure,imshow(log(abs(F2)),[-1 5],'notruesize');

2 二维离散余弦变换的图像压缩I=imread('cameraman.tif'); % MATLAB自带的图像imshow(I); clear;close all I=imread('cameraman.tif'); imshow(I); I=im2double(I); T=dctmtx(8); B=blkproc(I,[8 8], 'P1*x*P2',T,T'); Mask=[1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]; B2=blkproc(B,[8 8],'P1.*x',Mask); % 此处为点乘(.*) I2=blkproc(B2,[8 8], 'P1*x*P2',T',T); figure,imshow(I2); % 重建后的图像 3.采用灰度变换的方法增强图像的对比度I=imread('rice.tif'); imshow(I); figure,imhist(I); J=imadjust(I,[0.15 0.9], [0 1]); figure,imshow(J); figure,imhist(J);

基于MATLAB的彩色图像灰度化处理

基于MATLAB的彩色图像灰度处理 成绩 数字图像处理期末考试 题目基于Matlab的彩色图像灰度化处理 专业、班级11电信一班 姓名钱叶辉 学号 1109121025

基于Matlab的彩色图像灰度化处理 摘要 在计算机领域中,灰度数字图像是每个像素只有一个采样颜色的图像。这类图像通常显示为从最暗的黑色到最亮的白色的灰度,尽管理论上这个采样可以是任何颜色的不同深浅,甚至可以是不同亮度上的不同颜色。灰度图像与黑白图像不同,在计算机图像领域中黑白图像只有黑色与白色两种颜色;灰度图像在黑色与白色之间还有许多级的颜色深度。但是,在数字图像领域之外,“黑白图像”也表示“灰度图像”,例如灰度的照片通常叫做“黑白照片”。在一些关于数字图像的文章中单色图像等同于灰度图像,在另外一些文章中又等同于黑白图像[1]。 彩色图像的灰度化技术在现代科技中应用越来越广泛, 例如人脸目标的检测与匹配 以及运动物体目标的监测等等, 在系统预处理阶段, 都要把采集来的彩色图像进行灰度化处理, 这样既可以提高后续算法速度, 而且可以提高系统综合应用实效, 达到更为理想的要求。因此研究图像灰度化技术具有重要意义。 关键词:灰度化;灰度数字图像;单色图像

一、设计原理 将彩色图转化成为灰度图的过程称为图像的灰度化处理。彩色图像中的每个像素的颜色有R、G、B三个分量决定,而每个分量有255个中值可取,这样一个像素点可以有1600多万(255*255*255)的颜色的变化范围。而灰度图像是R、G、B三个分量相同的一种特殊的彩色图像,其中一个像素点的变化范围为255种,所以在数字图像处理中一般先将各种格式的图像转变成灰度图像以使后续的图像的计算量变得少一些。灰度图像的描述与彩色图像一样仍然反映了整幅图像的整体和局部的色度和亮度等级的分布和特征[2]。 在RGB模型中,如果R=G=B时,则彩色表示一种灰度颜色,其中R=G=B的值叫做灰度值。因此,灰度图像每个像素只需一个字节存放灰度值(又称强度值、亮度值),灰度范围为0-255。本设计采用三种方法对图像进行灰度化处理。 加权平均法;平均值法;最大值法。 二、彩色图像的灰度化处理 2.1加权平均法 根据重要性及其它指标,将R、G、B三个分量以不同的权值进行加权平均。由于人眼对绿色的敏感度最高,对蓝色敏感度最低。因此,在MATLAB中我们可以按下式系统函数对RGB三分量进行加权平均能得到较合理的灰度图像。 f(i,j)=0.30R(i,j)+0.59G(i,j)+0.11B(i,j)) (2-1)程序首先读取一个RGB格式的图象,然后调用已有的函数rgb2gray()来实现彩色图像灰度化。 图2.1加权平均法的图像灰度处理 2.2平均值法[3] 将彩色图像中的R、G、B三个分量的亮度求简单的平均值,将得到均值作为灰度值

MATLAB图像操作命令大全

MATLAB常用图像操作 一. 读写图像文件 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);

matlab_数字图像处理代码

%%%%%% 求对比度%%%%%% clear; clc; [filename,pathname]=uigetfile({'*jpg;*.bmp;*.jpeg'},'load?image'); fpath=fullfile(pathname,filename); A=imread(fpath); figure(1); imshow(A); title('原图像') img=rgb2gray(A); figure(2); imshow(img); title('灰度后的'); img1=imnoise(img,'salt & pepper',0.05); %加入椒盐躁声 figure(3); imshow(img1); title('椒盐后的图像'); %%% K近邻域滤椒盐噪声%%% 3*3 %%% 找出与f(i,j)相近的像素值这里利用做差排序找出AAAA1=img1; AAAA1=double(AAAA1); %%%得到椒盐噪声图像 [m,n]=size(AAAA1); for i=2:m-1 for j=2:n-1 ASD1=[AAAA1(i-1,j-1) AAAA1(i-1,j) AAAA1(i-1,j+1) ... AAAA1(i,j-1) AAAA1(i,j) AAAA1(i,j+1) ... AAAA1(i+1,j-1) AAAA1(i+1,j) AAAA1(i+1,j+1)]; aa=ASD1; %%随机设定的一个数组 b=AAAA1(i,j); %%取参照值 a=aa(:); %%将给定数组化为一维的

ab=(a(:)-b)'; %%将数组a与b做差abc=abs(ab); abc=sort(abc); %%差值取绝对值并排序 [as1 as11] =find(abs((a(:)-b))==abc(1,1)); as=[as1 as11]; if ~isempty(abc(abc(:)~=abc(1,1))) if ~isempty(abc) abc1=abc(abc(:)~=abc(1,1)); [as2 as22]=find(abs((a(:)-b))==abc1(1,1)); as=[as1 as11;as2 as22]; end end if ~isempty(abc1(abc1(:)~=abc1(1,1))) if ~isempty(abc1) abc2=abc1(abc1(:)~=abc1(1,1)); [as3 as33]=find(abs((a(:)-b))==abc2(1,1)); as=[as1 as11;as2 as22;as3 as33]; end end if ~isempty(abc2(abc2(:)~=abc2(1,1))) if ~isempty(abc2) abc3=abc2(abc2(:)~=abc2(1,1)); [as4 as44]=find(abs((a(:)-b))==abc3(1,1)); as=[as1 as11;as2 as22;as3 as33;as4 as44]; end end

图像处理的matlab实现

成绩: 数字图像处理实验报告实验二:图像处理的matlab的实现 学号:0967118225 姓名:洪旭浩 同组人: 电脑编号: 实验时间:2010年6月4日星期一

数字图像处理实验报告 一、实验名称 图像处理的matlab 的实现 二、实验目的 1、了解Matlab 及其工具箱的基本使用方法 2、掌握使用Matlab 打开各种图像文件的方法 3、掌握使用Matlab 进行简单图像处理的方法 三、实验平台 Windows XP,Matlab 7.8.0(R2009a) 四、实验内容 一、直方图均衡化 直方图均衡化处理可将图像的灰度范围拉开,让灰度直方图在较大的动态范围内趋于一致。用图像),(y x f 的直方图代替灰度的分布密度函数)(f p f ,则直方图均衡化后的图像g 为: ?==f f du u p f T g 0)(][对于数字图像,设原图像的像素总数为N,灰度级的个数为L,第k 个灰度级出现的频数为k n 。若原图像),(y x f 在像素点),(y x 处的灰度为k r ,则直方图均衡化后的图像),(y x g 在),(y x 处的灰度k s 为: ∑===k l l k k N n r T s 0][MATLAB 图像处理工具箱提供了用于直方图均衡化的函数histep。histep 函数的语法格式为: J=histep(I,hgram) J=histep(I,n) [J,T]=histep(I,…) newmap=histep(X,map,hgram) newmap=histep(X,map) [newmap,T]=histep(X,…) 其中J=histep(I,hgram)将原始图像I 的直方图变成用户指定的向量hgram,hgram 中的各元素值域为[0,1]。 J=histep(I,n)指定直方图均衡化后的灰度级数n,默认值为64。 [J,T]=histep(I,…)返回能将图像I 的灰度直方图变换成图像J 的直方图的变换T。 newmap=histep(X ,map ,hgram)、newmap=histep(X ,map)和[newmap ,T]=histep(X,…)是针对索引色图像调色板的直方图均衡化。 1、使用以上语句,实现选定图像的直方图均衡化; 2、修改部分参数,观察不同参数下直方图均衡化的变化规律;

matlab图像处理函数汇总(排版后)

matlab图像处理函数汇总 1.applylut 功能: 在二进制图像中利用lookup表进行边沿操作. 语法: A = applylut(BW,lut) 举例 lut = makelut('sum(x(:)) == 4',2); BW1 = imread('text.tif'); BW2 = applylut(BW1,lut); imshow(BW1) figure, imshow(BW2) 相关命令: makelut 2.bestblk 功能:确定进行块操作的块大小. 语法: siz = bestblk([m n],k) [mb,nb] = bestblk([m n],k) 举例 siz = bestblk([640 800],72) siz = 64 50 相关命令: blkproc 3.blkproc MATLAB高级应用——图形及影像处理 320 功能:实现图像的显式块操作. 语法: B = blkproc(A,[m n],fun) B = blkproc(A,[m n],fun,P1,P2,...) B = blkproc(A,[m n],[mborder nborder],fun,...) B = blkproc(A,'indexed',...) 举例 I = imread('alumgrns.tif'); I2 = blkproc(I,[8 8],'std2(x)*ones(size(x))'); imshow(I) figure, imshow(I2,[]); 相关命令: colfilt, nlfilter,inline 4.brighten 功能: 增加或降低颜色映像表的亮度. 语法: brighten(beta) newmap = brighten(beta) newmap = brighten(map,beta) brighten(fig,beta) 相关命令: imadjust, rgbplot 5.bwarea 功能: 计算二进制图像对象的面积. 语法: total = bwarea(BW) 举例 BW = imread('circles.tif'); imshow(BW); 附录 MATLAB图像处理命令 321 bwarea(BW) ans = 15799 相关命令: bweuler, bwperim 6.bweuler. 功能: 计算二进制图像的欧拉数. 语法: eul = bweuler(BW,n) 举例 BW = imread('circles.tif'); imshow(BW); bweuler(BW) ans = -2 相关命令: bwmorph, bwperim 7.bwfill 功能: 填充二进制图像的背景色. 语法: BW2 = bwfill(BW1,c,r,n) BW2 = bwfill(BW1,n) [BW2,idx] = bwfill(...) BW2 = bwfill(x,y,BW1,xi,yi,n)

Matlab中如何读出写入图像文件以及对图像的简单处理

Matlab中如何读出写入图像文件以及对图像的简单处理imMatrix = imread('name.jpg')%jpg也可以bmp,你的图片格式MATLAB图像处理工具箱支持四种基本图像类型:索引图像、灰度图像、二进制图像和RGB图像。MATLAB直接从图像文件中读取的图像为RGB图像。它存储在三维数组中。这个三维数组有三个面,依次对应于红(Red)、绿(Green)、蓝(Blue)三种颜色,而面中的数据则分别是这三种颜色的强度值,面中的元素对应于图像中的像素点。设所得矩阵为X三维矩阵(256,256,3) ,X(:,:,1)代表红颜色的2维矩阵X(:,:,2)代表绿颜色的2维矩阵, X(:,:,3)代表兰颜色的2维矩阵。[X, map]=imread('34.bmp');r=double(X(:,:,1)); %r是256 x 256的红色信息矩阵 g=double(X(:,:,2)); %g是256 x 256的绿色信息矩阵b=double(X(:,:,3)); %b是256 x 256 的兰色信息矩阵 索引图像数据包括图像矩阵X与颜色图数组map,其中颜色图map是按图像中颜色值进行排序后的数组。对于每个像素,图像矩阵X包含一个值,这个值就是颜色图数组map中的索引。颜色图map为m×3双精度矩阵,各行分别指定红、绿、蓝(R、G、B)单色值,map=[RGB],R、G、B为值域为[0,1]的实数值,m为索引图像包含的像素个数。 对于相同的数据,采用uint8格式比双精度格式节省内存空间,从而更经济。在MATLAB中 如果索引图像的颜色图小于256行,则它的图像矩阵以uint8格式存储,否则以双精度格式存储。 一:imread:从图像文件夹中读取图像。 A = imread(FILENAME,FMT) 读取图像到A,如果文件是包含一灰度图像,A是一二维矩阵,如果文件是包含一真彩色图像(RGB),A是一三维矩阵(M-by-N-by-3)。FILENAME :图像文件名;FMT:图像文件格式; 文件必须在当前目录下,或在Matlab的一路径上。如果imread不能够找到一名称为FILENAME的文件,那么它将找一名为FILENAME.FMT的文件 [X,MAP] = imread(FILENAME,FMT) 把图像FILENAME读入与它相关的图像色彩信息写 入MAP,图像色彩信息值在范围[0,1]中自动地重新调整. [...] = imread(FILENAME)这种方式是试图得到文件的格式从文件所包含的信息。[...] = imread(URL,...)从一Internet URL上读图像URL 必须包含协议(即:"http://"). 1.2数据类型: TIFF的特殊语法: [...] = imread(...,IDX) 从很多图像TIFF文件中读一个图像;IDX是一个整数值,它显示了所读图像在文件中的顺序,例如:如果IDX是3, imread将读文件中的第三个图像。如果省略了这个变量, imread将读文件中的第一个图像. IMREAD支持的图像文件格式:JPEG TIFF GIF BMP PNG HDF PCX XWD ICO CUR RAS PBM PGM PPM 相关信息也可在Matlab中查看:imfinfo, imwrite, imformats, fread, 二:imwrite输出图像 imwrite(A,FILENAME,FMT) 把图像A 写入图像文件FILENAME. imwrite(X,MAP,FILENAME,FMT) 把X和它的相关色彩信息MAP写入FILENAME. imwrite(...,FILENAME) 把图像写入图像文件FILENAME,并推测可能的格式用来做filename的扩展名。扩展名必须是FMT中一合法名. imwrite(...,PARAM1,VAL1,PARAM2,VAL2,...) 不同的参数控制输出文件的各种不同特征。参数要是当前所支持的HDF,JPEG, TIFF, PNG, PBM, PGM, 和PPM 文件

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