当前位置:文档之家› 数字图像处理实验讲义16学时2011年版

数字图像处理实验讲义16学时2011年版

数字图像处理实验讲义16学时2011年版
数字图像处理实验讲义16学时2011年版

实验1 图像基本操作

1. 实验要求

在MATLAB环境下完成下列操作:

读入图像;

保存图像;

图像的显示方法

2. 实验类型验证型

3. 实验时间2学时

4. 实验方法

使用函数imread可以将图像读入MATLAB环境,imread的语法为

imread( …filename? )

imread所支持的文件格式包括:

TIFF---------- .tif .tiff

JPEG-------- .jpg .jpeg

GIF----------- .gif

BMP--------- .bmp

PNG--------- .png

XWD--------- .xwd

使用函数imwrite可以将图像保存在磁盘上,imwrite的语法为

imwrite( f, …filename? )

使用函数size可以察看图像大小,size的语法为

size( )

使用函数imfinfo可以察看图像信息,imfinfo的语法为

imfinfo filename

使用函数imshow可以显示图像缩略图,imshow的语法为

imshow ( )

使用函数imview可以显示图像原图,imview的语法为,不同的是imview是一个工具,可以完成一些基本的图像操作

imview ( )

使用函数figure可以开辟一个新的窗口,figure的语法为

figure, imshow ( )

figure, imview ( )

figure, plot ( )

…………………

使用数据类型转换函数可以转换图像数据类型,如

im2uint8 ( ) ------------------ convert image to uint8

im2uint16 ( ) ---------------- convert image to uint16

mat2gray ( ) ----------------- convert image to double, range[0 , 1]

im2double ( ) ---------------- convert image to double

im2bw ( ) --------------------- convert image to logical

5. 实验过程

使用函数imread打开一幅灰度图像(fig0309abc.jpg),使用函数imwrite将图像另存为不同的文件名;在此过程中观察图像矩阵的形式,并用图像矩阵的索引法,观察并记录5×5的矩阵片断;

使用函数size察看图像大小,使用函数imfinfo察看图像信息;记录图像信息;

分别使用函数imshow和函数imview显示图像;记录两种方式的区别;

使用函数imread打开一幅彩色图像(start.jpg),观察图像矩阵的形式;并分别观察和记录RGB三色5×5的矩阵片断;

使用函数rgb2gray将彩色图像转换为灰度图像;

使用im2uint8和im2double转换图像的数据类型,记录5×5矩阵片断在转换前后的变化。

实验2 图像点运算

1.实验要求

在MATLAB环境下完成下列操作:

读入图像;

图像灰度变换方法;

灰度的对数扩展法;

绘制灰度直方图;

直方图均衡法;

任意灰度变换实现;

2.实验类型验证型

3.实验时间2学时

4.实验方法

使用函数imadjust可以实现图像灰度变换,imadjust的语法为

imadjust ( f, [ low_in high_in ], [ low_out high_out ], gamma )

gamma所表示的意义:

>1 ---------- 凹曲线

<1 ---------- 凸曲线

=1 ---------- 直线

灰度的对数扩展法g = c*log( 1+ double( f ) )

目的是使亮区域得到抑制,暗区域灰度得到均匀增强

使用语句

im2uint8(mat2gray( log( 1+ double (f) ) ) )

其中系数c通过mat2gray函数自动调整

灰度直方图反映图像的灰度分布情况,即亮度分布情况;

它说明不同灰度的像素个数或分布概率

使用函数imhist绘制灰度直方图,imhist的语法为

h = imhist( f );

figure, imhist( f );

figure, plot( h );

figure, stem( h );

figure, bar( h );

由于拍摄和处理的原因,导致图像的灰度分布范围过小;

最大熵原理指出:数据满足均匀分布时,信息量最大;

依据这个原理,通过灰度直方图均衡化将图像灰度分布扩展到整个灰度分布范围,可以使图形信息量最大,即使使得图像对比度增强。

使用函数histeq对图像进行直方图均衡,histeq的语法为

g = histeq( f, nlev ); % nlev为输出的灰度级数,通常取256,默认64

figure, imhist(g);

任意灰度变换需要进行分段计算,如图1

g = β*(f-a)+ga , a≤f<b ;

γ*(f-b)+gb , b≤f≤c ;

5.实验过程

使用函数imread打开一幅灰度图像(fig0222b.jpg),使用函数imadjust实现图像灰度变换;

分别使用:

g1= imadjust ( f, [ 20 255 ], [ 0 255 ], 0.5 );

g2= imadjust ( f, [ 20 255 ], [ 0 255 ], 1 );

g3= imadjust ( f, [ 20 255 ], [ 0 255 ], 2 );

g4= imadjust ( f, [ 0 255 ], [ 255 05 ], 1 );

figure, imshow(g1);

figure, imshow(g2);

figure, imshow(g3);

figure, imshow(g4);

观察并记录四种变换差别。(注意:请将方括号内的整数需要手工折算成浮点数)

使用函数imread打开一幅灰度图像(fig0305.tif),使用如下语句进行对数扩展

figure, imshow(f2);

g5= im2uint8(mat2gray(log(1+double (f2))));

figure, imshow(g5);

观察并记录均衡前后的差别。

使用函数imread打开一幅灰度图像(fig0222b.jpg),使用函数imhist绘制灰度直方图,直方图有四种表现形式

h = imhist( f3 );

figure, imhist( f3 );

figure, plot( h );

figure, stem( h );

figure, bar( h );

观察四种直方图的差别。

使用函数imread打开一幅灰度图像(fig0308.tif),说明这幅图像直方图存在的问题。

使用函数histeq对图像进行直方图均衡,比较并记录均衡前后图像的变化

h1 = histeq( f3, 256 );

figure, imhist( h1 );

figure, imshow( f3 );

figure, imshow( h1 );

打开一幅灰度图像(fig0309abc.jpg),编写一个m文件完成图2的灰度变换功能,观察并记录图像变换前后的区别,将程序记录

实验3 图像间的运算

1.实验要求

在MATLAB环境下完成下列操作:

图像加法;

图像减法;

图像乘法;

图像除法;

图像与或非等逻辑运算;

2.实验类型验证型

3.实验时间2学时

4.实验方法

图像加法是把图像叠加在一起的操作,使用函数imadd将两幅图像相加。

f1=imread('Fig0206a.tif'); %读入图像

f2=imread('Fig0207.tif '); %读入图像

f3=imadd(f1,f2);

figure,imshow(f3);

图像减法是从一幅图像中减去另一幅图像,经常被用作检测两幅图像的差别,使用函数imsubtract将两幅图像相减。下面的操作是根据一幅原始图像,生成其背景亮度图像,然后再从原图像中减去背景亮度图像,从而得到结果。

f4=imread('Fig0404.jpg'); %读入图像

bkgrd=imopen(f4,strel('disk',15));

f5=imsubtract(f4, bkgrd);

figure,subplot(1,2,1),imshow(f4);

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

图像乘法将两幅图像对应点的像素进行相乘操作(MATLAB的点乘),使用函数immultiply对两幅图像进行乘法操作,并将相乘的结果作为输出图像对应点的像素值。

f6=imread('Fig0206a.tif'); %读入图像

f7=imread(' Fig0207.tif '); %读入图像

f8=immultiply(f6,f7); %两幅图像相乘

f9=immultiply(f6,1.2); %图像和一个系数相乘,等于将灰度乘以一个系数

figure,subplot(2,2,1),imshow(f6);

subplot(2,2,2),imshow(f7);

subplot(2,2,3),imshow(f8);

subplot(2,2,4),imshow(f9);

图像除法将两幅图像对应点的像素进行相除操作(MATLAB的点除),使用函数imdivide 对两幅图像进行除法操作,并将相除的结果作为输出图像对应点的像素值。

f10=imread(' Fig0206a.tif '); %读入图像

f11=imread(' Fig0207.tif '); %读入图像

f12=double(f11);

f13=f12*0.2+50;

f14=uint8(f13);

f15=imdivide (f10,f14);

figure,imshow(f15);

图像间的逻辑运算主要有“与”、“或”、“非”等,把它们组合起来可以构成其他逻辑运算。当我们对灰度级进行逻辑操作时,像素值作为一个二进制数来处理,逻辑操作按位进行。

“与”和“或”运算通常用作模板,即通过这些操作可以从一幅图像中提取子图像,更加突出子图像的内容。下面的“与”和“或”运算通过逐点进行。

f=imread('fig0222b.jpg'); %读入图像

[m,n]=size(f);

figure,subplot(2,3,1),imshow(f);

f1=zeros(m,n);

f1(20:150,70:170)=255;

f1=uint8(f1);

subplot(2,3,2),imshow(f1);

for i=1:m

for j=1:n

f2(i,j)=bitand(f(i,j),f1(i,j));

end

end

subplot(2,3,3),imshow(f2); %显示“与”的结果

f3=ones(m,n)*255;

f3(20:150,70:170)=0;

f3=uint8(f3);

subplot(2,3,5),imshow(f3);

for i=1:m

for j=1:n

f4(i,j)=bitor(f(i,j),f3(i,j));

end

end

subplot(2,3,6),imshow(f4); %显示“或”的结果

for i=1:m

for j=1:n

f5(i,j)=bitxor(f(i,j),255); %和1取异或等于求反

end

end

subplot(2,3,4),imshow(f5); %显示“非”的结果

5.实验过程

使用函数imadd将两幅图像相加('Fig0206a.tif') ('Fig0207.tif '),观察并记录结果。

使用函数imsubtract将两幅图像相减('Fig0404.jpg'),观察并记录结果。

使用函数immultiply对两幅图像进行乘法操作('Fig0206a.tif') ('Fig0207.tif '),并将相乘的结果作为输出图像对应点的像素值,观察并记录结果。

使用函数imdivide对两幅图像进行除法操作('Fig0206a.tif') ('Fig0207.tif '),并将相除的结果作为输出图像对应点的像素值,观察并记录结果。

使用点运算进行图像“与”、“或”、“非”操作('fig0222b.jpg'),观察并记录结果。

实验4 图像空间运算

1. 实验要求

在MATLAB 环境下完成下列操作:

均值滤波方法; 中值滤波方法; 边缘检测;

基于边缘检测的图像增强法;

采用边缘检测和灰度变换结合图像增强法;

2. 实验类型 验证型

3. 实验时间 2学时

4. 实验方法

图像的空间滤波使用函数imfilter 实现,imfilter 的语法为

imfilter ( f, w, { filtering_mode }, { boundary_option }, { size_option } )

f -------- image matrix w ------- image mask

{ }为可选项

均值滤波的掩模 ?????????

?111111111,??????????111121111,??????????010101010等 中值滤波的函数medfilt2()

边缘检测的算子??????????---101202101,??????????---121000121,??????????--101000101,

??????????--101000101,??????????---101101101

,??????????---101101101,??

????????----010141010,

??????????----121242121,????

??????----020282020等 基于边缘检测的图像增强算子??????????---101212101

,??????????---121010121,????

??????--101010101,

??????????--101010101,??????????---101111101

,??????????---101111101,??

????????----010151010,

??????????----121252121,????

??????----020292020等 采用边缘检测和灰度变换结合图像增强法

设)],([y x f ?是图像经过一阶梯度运算的结果

1.?

?

?≥??=other y x f T

y x f y x f y x g ),,()],([)],,([),(

2.??

?≥?=other

y x f T

y x f L y x g G ),,()],([,),(

3.?

?

?≥??=other

L T y x f y x f y x g B ,)],([)],

,([),(

4.?

?

?≥?=other

L T y x f L y x g B G ,

)],([,),(

5. 实验过程

使用函数imread 打开一幅有噪声的灰度图像(fig0318.tif);

分别使用:

均值滤波的各种掩模过滤噪声,观察并记录各种掩模处理结果的差异,注意掩模的系数

中值滤波观察并记录和中值滤波相比的结果差异

使用函数imread 打开一幅灰度图像(fig0316.tif);

分别使用:

使用各种边缘检测的算子检测边缘,观察并记录各种算子处理结果的差异。 使用各种边缘增强的算子处理图像,观察并记录各种算子处理结果的差异。

打开一幅灰度图像(fig0413.tif),编程实现四种采用边缘检测和灰度变换结合图像增强法 设门限T=210,LG=230,LB=50,(这是参考数值,请根据实际情况调整) 记录程序,并且比较四种处理结果的差异

实验5 图像频域运算

1.实验要求

在MATLAB环境下完成下列操作:

掌握图像进行二维DFT的方法;

完成简单的图像频域滤波;

采用频域处理对图像增强法;

2.实验类型验证型

3.实验时间2学时

4.实验方法

图像的图像进行二维DFT使用函数fft2()实现,fft2()的语法为

F=fft2(f);

为了显示频谱的实部使用

S=abs(F);

figure,imshow(S,[ ]);

为了将频谱居中显示,使用函数fftshift()搬移,fftshift()的语法为

Fc=fftshift(F);

figure,imshow(Fc,[ ]);

为了使频谱的对比度增强,采用对数增强法

S2=log(1+abs(Fc));

figure,imshow(S2,[ ])

将图像进行IDFT之前,使用函数ifftshift()将频谱反向搬移,然后使用函数ifft2()进行IDFT

生成低通滤波使用函数lpfilter(),生成高通滤波使用函数hpfilter(),(参考函数部分)

H1=lpfilter(…ideal?,M,N,D0);

H2=hpfilter(…ideal?,M,N,D0);

对图像进行频域滤波使用函数dftfilt(),(参考函数部分)

G1=dftfilt(f,H1);

G2=dftfilt(f,H2);

figure,imshow(G1,[ ]);

figure,imshow(G2,[ ]);

对图像进行高频强调增强,是在保持图像特征的基础上,对高频部分进行一定提升

H3=0.5+2*H2;

G3=dftfilt(f,H3);

figure,imshow(G3,[ ]);

5.实验过程

使用函数imread打开一幅图像(fig0403.tif),对图像进行DFT,频谱搬移,反搬移,和IDFT

使用函数imread打开一幅灰度图像(fig0413.tif),对图像进行低通滤波,高通滤波,和高频增强

设计一种频域图像增强方法对图像fig0419.tif进行增强,同时采用空间增强方法对结果进行比较

实验6 图像退化和复原

1.实验要求

在MATLAB环境下完成下列操作:

完成图像运动模糊退化;

完成有约束的最小二乘方滤波;

完成图像维纳滤波;

完成图像逆滤波;

比较各种方法的优缺点;

2.实验类型验证型

3.实验时间2学时

4.实验方法

创建一个运动模糊退化滤波器(退化滤波器PSF),使用函数fspecial创建退化滤波器PSF,然后调用imfilter对图像进行卷积运算,就可以得到一幅运动退化图像。

I=imread('fig0222b.jpg'); %读入图像

figure,subplot(1,2,1),imshow(I);

LEN=31;

THETA=11;

PSF=fspecial('motion',LEN,THETA); %生成退化函数

blurred=imfilter(I,PSF, 'circular', 'conv');

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

然后使用imnoise函数对图像添加随机噪声。

fnblurred =imnoise( blurred, 'gaussian',0,0.001); %产生随机噪声图像

figure, imshow(fnblurred);

下面,使用函数deconvwnr对无噪声的运动模糊图像进行复原,这里假设退化函数PSF 已知

LEN=31;

THETA=11;

PSF=fspecial('motion',LEN,THETA);

wnr1=deconvwnr(blurred,PSF);

figure,imshow(wnr1);

然而,实际情况是退化函数PSF是未知的,只能通过一些先验参数进行复原,所以,这里采用不同的LEN和THETA参数,进行实验,体会一下退化函数PSF的重要性。

wnr2=deconvwnr(blurred, fspecial('motion',2*LEN,THETA));

figure,subplot(1,2,1),imshow(wnr2);

wnr3=deconvwnr(blurred, fspecial('motion', LEN, 2*THETA));

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

接下来,使用函数deconvwnr对一幅有噪声的运动模糊图像进行维纳滤波复原。

wnr4=deconvwnr(fnblurred,PSF);

figure,imshow(wnr4);

从结果中可以看出,复原效果不是很好,这是由于维纳滤波器设计不合适所导致的。

为了使维纳滤波复原的效果变好,必须使用deconvwnr函数的可选参数NSR、NCORR 和ICORR,通过改变参数获得不同的复原效果。

pnoise=imnoise(zeros(size(f)),?gaussian?,0,0.001);

NSR=sum(pnoise(:).^2) /sum(im2double(fnblurred(:)).^2); %使用信噪比作为约束条件wnr5= deconvwnr(fnblurred,PSF,NSR);

NP=abs(fftn(pnoise)).^2;

NCORR=fftshift(real(ifftn(NP))); %使用噪声自相关函数

IP= abs(fftn(im2double(fnblurred))).^2;

ICORR=fftshift(real(ifftn(IP))); %使用图像自相关函数

wnr6= deconvwnr(fnblurred,PSF, NCORR, ICORR);

figure,imshow(wnr6);

盲目去卷积法可在对退化情况完全不知情的下(忽略噪声影响)进行逆滤波操作。可以使用deconvblind函数进行盲目去卷积。

PSF=fspecial('gaussian',7,10);

blurred01=imfilter(I,PSF, 'circular', 'conv');

figure, imshow(blurred01);

UNDERPSF=ones(size(PSF)-4);

[J1 P1]= deconvblind(blurred01, UNDERPSF); % 使用较小的PSF进行逆滤波

figure, imshow(J1);

OVERPSF=padarray(UNDERPSF,[4 4], 'replicate', 'both');

[J2 P2]= deconvblind(blurred01, OVERPSF); % 使用较大的PSF进行逆滤波

figure, imshow(J2);

INITPSF=padarray(UNDERPSF,[2 2], 'replicate', 'both');

[J3 P3]= deconvblind(blurred01, INITPSF); % 使用真实的PSF进行逆滤波

figure, imshow(J3);

从结果中可以发现,退化函数PSF对图像复原质量有着非常重要的影响,实际应用中可以通过分析,使用不同大小的PSF对图像进行复原,从中选择一个最合适的PSF使用。

5.实验过程

使用函数fspecial创建退化滤波器PSF,然后调用imfilter对图像进行卷积运算,就可以得到一幅运动退化图像,观察并记录结果。

使用imnoise函数对图像添加随机噪声,观察并记录结果。

使用函数deconvwnr对无噪声的运动模糊图像进行复原,观察并记录结果。同时采用不同的LEN和THETA参数,进行实验,体会一下退化函数PSF的重要性,观察并记录结果。

使用函数deconvwnr对一幅有噪声的运动模糊图像进行维纳滤波复原,观察并记录结果。为了使维纳滤波复原的效果变好,必须使用deconvwnr函数的可选参数NSR、NCORR 和ICORR,通过改变参数获得不同的复原效果,观察并记录结果。

使用deconvblind函数进行盲目去卷积,采用不同的退化函数,观察并记录结果。

实验7 彩色图像处理

1. 实验要求

在MATLAB 环境下完成下列操作:

学习MATLAB 中彩色图像的表示方法 掌握彩色图像空间的转换方法

掌握彩色图像平滑滤波和锐化的方法

2. 实验类型 验证型 3. 实验时间 2学时 4. 实验方法

令fr, fg , fb 分别代表RGB 彩色图像的三个色彩分量,一幅RGB 图像利用cat( )函数将三个分量合成为一幅RGB 图像,语法为

rgb_image = cat (3, fr, fg, fb)

其中rgb_image 为已经读入的彩色图像矩阵

使用函数rgb2gray 可以将彩色图像转换为灰度图像,rgb2gray 的语法为

rgb2gray ( )

也可以直接提取RGB 彩色图像的三个色彩分量,语法为

fr = rgb_image (:, :, 1) fg = rgb_image (:, :, 2) fb = rgb_image (:, :, 3)

在MATLAB 中,可以将彩色图像在各个色彩空间中相互转换,语法为

rgb 空间和YCrCb 空间的转换

????

????????????????----+??????????=??????????B G R Cb Cr Y 214.18000.112966.24786.93203.74553.128000.112797.37418.6512812816 ycbcr_image = rgb2ycbcr(rgb_image)

彩色图像由于还有色彩信息,因此它的平滑和锐化,必须在每个色彩分量中分别进行 5. 实验过程

使用函数imread 打开一幅彩色图像(start.jpg);

观察RGB 三个分量的值,将三个分量显示出来,观察其中差异

将一幅彩色图像(start.jpg)分别转换到YCrCb ,CMYK 空间,将四个空间的图像显示出

来,观察其中差异

使用函数imread 打开一幅彩色图像(fig0618.tif),提取三个分量,用矩阵

???

??

??

?

????????=111111*********

1111111111B ,对图像在三个分量进行平滑,分别观察三个分量平滑结果以及合成

彩色图像后的平滑结果

将图像fig0618.tif 转换到YCrCb 空间,提取三个分量,用矩阵???

????

?

?????

???=111111*********

1111111111B ,

对图像在三个分量进行平滑,分别观察三个分量平滑结果以及合成彩色图像后的平滑结果

请比较分别比较在RGB 空间和YCrCb 空间进行平滑的效果

使用函数imread 打开一幅彩色图像(fig0618.tif),提取三个分量,用拉普拉斯算子

????

?

?????----=0101

510

1

0C ,对图像在三个分量进行锐化,分别观察三个分量锐化结果以及合成彩色图像后的锐化结果

将图像fig0618.tif 转换到YCrCb 空间,提取三个分量,用拉普拉斯算子

??

??

?

?????----=010151010C ,对图像在三个分量进行锐化,分别观察三个分量锐化结果以及合成

彩色图像后的锐化结果

请比较分别比较在RGB 空间和YCrCb 空间进行锐化的效果

实验8 图像形态学操作

1.实验要求

在MATLAB环境下完成下列操作:

学习图像形态学的基本原理和方法

掌握图像形态学操作的一般方法;

完成简单的图像形态操作;

设计简单的形态操作方案;

2.实验类型验证型

3.实验时间2学时

4.实验方法

图像进行膨胀使用函数imdilate()实现,imdilate()的语法为

F=imdilate (f,B);

其中B是结构元素

图像进行腐蚀使用函数imerode()实现,imerode ()的语法为

F=imerode (f,B);

其中B是结构元素

图像进行开运算使用函数imopen()实现,imopen ()的语法为

F=imopen (f,B);

其中B是结构元素

图像进行闭运算使用函数imclose()实现,imclose ()的语法为

F=imclose (f,B);

其中B是结构元素

图像的结构元素B可以手工输入,也可以程序生成

生成结构元素使用函数strel()实现,strel ()的语法为

B = strel(shape,parameters)

函数strel()的使用说明参考matlab帮助

图像的贴标签操作使用函数bwlabel()实现,bwlabel ()的语法为

[L, n] = bwlabel(f,conn)

其中,conn是联接数,L是贴过标签的图像,n是最大的标签数5.实验过程

使用函数imread打开一幅灰度图像(fig0906.tif);

对图像进行膨胀运算,分别使用半径为5的结构元素

???

????

?

????????=111111*********

1111111111B

或B=ones(5)

或B=strel(…rectangle?,[5 5])

使用函数imread 打开一幅灰度图像(fig0908.tif);

对图像进行腐蚀运算,分别使用半径为5,10,20的结构元素,观察三种的结果的差异;

使用函数imread 打开一幅灰度图像(fig0910.tif);

使用半径为10的结构元素,分别对图像进行开运算和闭运算,观察两种运算结果之间的差异;

使用函数imread 打开一幅灰度图像(fig0926bw.tif);

这是一张米粒的照片,设计一种方法,使用前面介绍的函数计算米粒的个数(提示:可使用函数bwlable 计算单联通域的个数)

附录:IPT图像处理函数列表

Geometric transformations.

pixeldup - Duplicate pixels of an image in both directions.

vistformfwd - Visualize forward geometric transformation.

Pixel values and statistics.

covmatrix - Covariance matrix of vector population.

statmoments - Statistical central moments of image histogram.

Image analysis, including segmentation, description, recognition.

bayesgauss - Bayes classifier for Gaussian patterns.

bound2eight - Convert 4-connected boundary to 8-connected.

bound2four - Convert 8-connected boundary to 4-connected.

bound2im - Convert boundary to image.

boundaries - Trace region boundaries.

bsubsamp - Subsample a boundary.

colorgrad - Vector gradient of RGB image.

colorseg - Segment a color image.

connectpoly - Connect vertices of polygon.

diameter - Measure diameter of image regions.

fchcode - Freeman chain code of boundary.

frdescp - Fourier descriptors.

hough - Hough transform.

houghlines - Extract line segments using Hough transform.

houghpeaks - Detect peaks in Hough transform.

houghpixels - Image pixels associated with Hough transform bin.

ifrdescp - Inverse Fourier descriptors.

imstack2vectors - Extract vectors from image stack.

invmoments - Invariant moments of image.

mahalanobis - Mahalanobis distance.

minperpoly - Minimum perimeter polygon.

polyangles - Internal angles of polygon vertices.

princomp - Principal-component vectors.

randvertex - Randomly perturb polygon vertices.

regiongrow - Segmentation by region growing.

signature - Signature of boundary.

specxture - Spectral texture of image.

splitmerge - Segment image using split-and-merge.

statxture - Statistical texture measures of image.

strsimilarity - Similarity measurement between two strings.

x2majoraxis - Align coordinate x with major axis of region. Image compression.

数字图像处理实验1

实验一 实验内容和步骤 练习图像的读取、显示和保存图像数据,步骤如下: (1)使用命令figure(1)开辟一个显示窗口 (2)读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内显示、二值图像和灰度图像,注上文字标题。 (3)保存转换后的灰度图像和二值图像 (4)在同一个窗口显示转换后的灰度图像的直方图 I=imread('BaboonRGB.bmp'); figure,imshow(I); I_gray=rgb2gray(I); figure,imshow(I_gray); I_2bw=Im2bw(I_gray); figure,imshow(I_2bw); subplot(1,3,1),imshow(I),title('RGB图像'); subplot(1,3,2),imshow(I_gray),title('灰度图像'); subplot(1,3,3),imshow(I_2bw),title('二值图像'); imwrite(I_gray,'Baboongray.png'); imwrite(I_2bw,'Baboon2bw.tif'); figure;imhist(I_gray);

RGB 图 像灰度图 像二值图 像 050100150200250 500 1000 1500 2000 2500 3000

(5)将原RGB 图像的R 、G 、B 三个分量图像显示在figure(2)中,观察对比它们的特点,体会不同颜色所对应的R 、G 、B 分量的不同之处。 [A_RGB,MAP]=imread('BaboonRGB.bmp'); subplot(2,2,1),imshow(A_RGB),title('RGB'); subplot(2,2,2),imshow(A_RGB(:,:,1)),title('R'); subplot(2,2,3),imshow(A_RGB(:,:,2)),title('G'); subplot(2,2,4),imshow(A_RGB(:,:,3)),title('B'); (6)将图像放大1.5倍,插值方法使用三种不同方法,在figure(3)中显示放大后的图像,比较不同插值方法的结果有什么不同。将图像放大到其它倍数,重复实验;A=imread('BaboonRGB.bmp'); figure(3),imshow(A),title('原图像'); B=imresize(A,1.5,'nearest'); figure(4),imshow(B),title('最邻近法') C=imresize(A,1.5,'bilinear'); ; figure(5),imshow(C),title('双线性插值'); D=imresize(A,1.5,'bicubic'); figure(6),imshow(D),title('双三次插值 '); RGB R G B

武汉科技大学 数字图像处理实验报告

二○一四~二○一五学年第一学期电子信息工程系 实验报告书 班级:电子信息工程(DB)1102班姓名 学号: 课程名称:数字图像处理 二○一四年十一月一日

实验一图像直方图处理及灰度变换(2学时) 实验目的: 1. 掌握读、写、显示图像的基本方法。 2. 掌握图像直方图的概念、计算方法以及直方图归一化、均衡化方法。 3. 掌握图像灰度变换的基本方法,理解灰度变换对图像外观的改善效果。 实验内容: 1. 读入一幅图像,判断其是否为灰度图像,如果不是灰度图像,将其转化为灰度图像。 2. 完成灰度图像的直方图计算、直方图归一化、直方图均衡化等操作。 3. 完成灰度图像的灰度变换操作,如线性变换、伽马变换、阈值变换(二值化)等,分别使用不同参数观察灰度变换效果(对灰度直方图的影响)。 实验步骤: 1. 将图片转换为灰度图片,进行直方图均衡,并统计图像的直方图: I1=imread('pic.jpg'); %读取图像 I2=rgb2gray(I1); %将彩色图变成灰度图 subplot(3,2,1); imshow(I1); title('原图'); subplot(3,2,3); imshow(I2); title('灰度图'); subplot(3,2,4); imhist(I2); %统计直方图 title('统计直方图'); subplot(3,2,5); J=histeq(I2); %直方图均衡 imshow(J); title('直方图均衡'); subplot(3,2,6); imhist(J); title('统计直方图');

原 图 灰度图 01000 2000 3000统计直方图 100200直方图均衡 0统计直方图 100200 仿真分析: 将灰度图直方图均衡后,从图形上反映出细节更加丰富,图像动态范围增大,深色的地方颜色更深,浅色的地方颜色更前,对比更鲜明。从直方图上反应,暗部到亮部像素分布更加均匀。 2. 将图片进行阈值变换和灰度调整,并统计图像的直方图: I1=imread('rice.png'); I2=im2bw(I1,0.5); %选取阈值为0.5 I3=imadjust(I1,[0.3 0.9],[]); %设置灰度为0.3-0.9 subplot(3,2,1); imshow(I1); title('原图'); subplot(3,2,3); imshow(I2); title('阈值变换'); subplot(3,2,5); imshow(I3); title('灰度调整'); subplot(3,2,2); imhist(I1); title('统计直方图'); subplot(3,2,4);

数字图像处理程序若干(matlab)

主程序 clear all close all clc !echo 本次图像处理的菜单如下:! !echo 1,imgsharping! !echo 2,imgnegative! !echo 3,imgsmoothing! !echo 4,imgsubtracting! !echo 5,medianfilting! !echo 6,contraststrength! !echo 7,lineartransform! !echo 8,imgfilp! !echo 9,imgindextransform! iptsetpref('ImshowBorder', 'tight') a=1; img = imread('C:\Users\huanhuan\Desktop\司马.jpg'); figure(1), imshow(img); while(a==1) choose=input('please enter your choosing ranging from 1 to 9: '); switch choose case 1, imgsharping(img); case 2, imgnegative(img); case 3, imgsmoothing(img); case 4, imgsubstract(img); case 5, medianfilting(img); case 6, contraststrength(); case 7, lineartransform(); case 8, imgfilp(img); case 9, imgindextransform(); otherwise disp('Unknown method.'); end a=input('continue(1) or quit(2)');

数字图像处理四个实验报告,带有源程序

数字图像处理 实验指导书 学院:通信与电子工程学院 专业:电子信息工程 班级: 学号: 姓名: XX理工大学

实验一 MATLAB数字图像处理初步 一、实验目的与要求 1.熟悉及掌握在MATLAB中能够处理哪些格式图像。 2.熟练掌握在MATLAB中如何读取图像。 3.掌握如何利用MATLAB来获取图像的大小、颜色、高度、宽度等等相关信息。 4.掌握如何在MATLAB中按照指定要求存储一幅图像的方法。 5.图像间如何转化。 二、实验原理及知识点 1、数字图像的表示和类别 一幅图像可以被定义为一个二维函数f(x,y),其中x和y是空间(平面)坐标,f 在任何坐标处(x,y)处的振幅称为图像在该点的亮度。灰度是用来表示黑白图像亮度的一个术语,而彩色图像是由单个二维图像组合形成的。例如,在RGB彩色系统中,一幅彩色图像是由三幅独立的分量图像(红、绿、蓝)组成的。因此,许多为黑白图像处理开发的技术适用于彩色图像处理,方法是分别处理三副独立的分量图像即可。 图像关于x和y坐标以及振幅连续。要将这样的一幅图像转化为数字形式,就要求数字化坐标和振幅。将坐标值数字化成为取样;将振幅数字化成为量化。采样和量化的过程如图1所示。因此,当f的x、y分量和振幅都是有限且离散的量时,称该图像为数字图像。 作为MATLAB基本数据类型的数值数组本身十分适于表达图像,矩阵的元素和图像的像素之间有着十分自然的对应关系。 图1 图像的采样和量化 根据图像数据矩阵解释方法的不同,MA TLAB把其处理为4类: 亮度图像(Intensity images) 二值图像(Binary images) 索引图像(Indexed images) RGB图像(RGB images)

数字图像处理实验报告

数字图像处理实验报告 实验一数字图像基本操作及灰度调整 一、实验目的 1)掌握读、写图像的基本方法。 2)掌握MATLAB语言中图像数据与信息的读取方法。 3)理解图像灰度变换处理在图像增强的作用。 4)掌握绘制灰度直方图的方法,理解灰度直方图的灰度变换及均衡化的方 法。 二、实验内容与要求 1.熟悉MATLAB语言中对图像数据读取,显示等基本函数 特别需要熟悉下列命令:熟悉imread()函数、imwrite()函数、size()函数、Subplot()函数、Figure()函数。 1)将MATLAB目录下work文件夹中的forest.tif图像文件读出.用到imread, imfinfo 等文件,观察一下图像数据,了解一下数字图像在MATLAB中的处理就是处理一个矩阵。将这个图像显示出来(用imshow)。尝试修改map颜色矩阵的值,再将图像显示出来,观察图像颜色的变化。 2)将MATLAB目录下work文件夹中的b747.jpg图像文件读出,用rgb2gray() 将其 转化为灰度图像,记为变量B。 2.图像灰度变换处理在图像增强的作用 读入不同情况的图像,请自己编程和调用Matlab函数用常用灰度变换函数对输入图像进行灰度变换,比较相应的处理效果。 3.绘制图像灰度直方图的方法,对图像进行均衡化处理 请自己编程和调用Matlab函数完成如下实验。 1)显示B的图像及灰度直方图,可以发现其灰度值集中在一段区域,用 imadjust函 数将它的灰度值调整到[0,1]之间,并观察调整后的图像与原图像的差别,调整后的灰

度直方图与原灰度直方图的区别。 2) 对B 进行直方图均衡化处理,试比较与源图的异同。 3) 对B 进行如图所示的分段线形变换处理,试比较与直方图均衡化处理的异同。 图1.1 分段线性变换函数 三、实验原理与算法分析 1. 灰度变换 灰度变换是图像增强的一种重要手段,它常用于改变图象的灰度范围及分布,是图象数字化及图象显示的重要工具。 1) 图像反转 灰度级范围为[0, L-1]的图像反转可由下式获得 r L s --=1 2) 对数运算:有时原图的动态范围太大,超出某些显示设备的允许动态范围, 如直接使用原图,则一部分细节可能丢失。解决的方法是对原图进行灰度压缩,如对数变换: s = c log(1 + r ),c 为常数,r ≥ 0 3) 幂次变换: 0,0,≥≥=γγc cr s 4) 对比拉伸:在实际应用中,为了突出图像中感兴趣的研究对象,常常要求 局部扩展拉伸某一范围的灰度值,或对不同范围的灰度值进行不同的拉伸处理,即分段线性拉伸: 其对应的数学表达式为:

数字图像处理实验(全完整答案)

数字图像处理实验(全 完整答案)

实验一常用 MATLAB图像处理命令 一、实验目的 1 、熟悉并掌握MA TLAB 工具的使用; 2、实现图像的读取、显示、代数运算和简单变换。 二、实验环境 MATLAB 6.5 以上版本、WIN XP或W IN2000计算机 三、常用函数 读写图像文件 1 imread imread 函数用于读入各种图像文件,如:a=imread('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); title (‘原图像’) %加上图像标题

3 colorbar colorbar 函数用显示图像的颜色条,如: i=imread('e:\w01.tif'); imshow(i); colorbar; 4 figure figure 函数用于设定图像显示窗口,如:figure(1) ;/figure(2) ; 5 subplot 把图形窗口分成多个矩形部分,每个部分可以分别用来进行显示。 Subplot (m,n,p)分成 m*n个小窗口,在第p 个窗口中创建坐标轴为当 前坐标轴,用于显示图形。 6 plot 绘制二维图形 plot (y) Plot (x,y)xy 可以是向量、矩阵。 图像类型转换 1 rgb2gray 把真彩图像转换为灰度图像 i=rgb2gray (j ) 2 im2bw 通过阈值化方法把图像转换为二值图像 I=im2bw(j ,level ) Level 表示灰度阈值,取值范围0~1(即0.n ),表示阈值取自原图像灰度范围的n%

数字图像处理程序

数字图像处理实验 图像处理实验(一)直方图 灰度变换是图像增强的一种重要手段,使图像对比度扩展,图像更加清晰,特 征更加明显。 灰度级的直方图给出了一幅图像概貌的描述,通过修改灰度直方图来得到图像 增强。 1、灰度直方图 (1)计算出一幅灰度图像的直方图 clear close all I=imread('004.bmp'); imhist(I) title('实验一(1)直方图'); (2)对灰度图像进行简单的灰度线形变换, figure subplot(2,2,1) imshow(I); title('试验2-灰度线性变换'); subplot(2,2,2) histeq(I); (3)看其直方图的对应变化和图像对比度的变化。 原图像 f(m,n) 的灰度范围 [a,b] 线形变换为图像 g(m,n),灰度范围[a’,b’]公式:g(m,n)=a’+(b’-a’)* f(m,n) /(b-a) figure subplot(2,2,1) imshow(I) J=imadjust(I,[0.3,0.7],[0,1],1); title(' 实验一(3)用g(m,n)=a’+(b’-a’)* f(m,n) /(b-a)进行变换 '); subplot(2,2,2) imshow(J) subplot(2,2,3) imshow(I) J=imadjust(I,[0.5 0.8],[0,1],1); subplot(2,2,4) imshow(J) (4) 图像二值化(选取一个域值,(5) 将图像变为黑白图像) figure subplot(2,2,1)

imshow(I) J=find(I<150); I(J)=0; J=find(I>=150); I(J)=255; title(' 实验一(4)图像二值化 ( 域值为150 ) '); subplot(2,2,2) imshow(I) clc; I=imread('14499.jpg'); bw=im2bw(I,0.5);%选取阈值为0.5 figure; imshow(bw) %显示二值图象 图象处理变换(二) 1.傅立叶变换 熟悉其概念和原理,实现对一幅灰度图像的快速傅立叶变换,并求其变换后的系数分布. 2.离散余弦变换 熟悉其概念和原理,实现对一幅灰度和彩色图像作的离散余弦变换,选择适当的DCT系数阈值对其进行DCT反变换. % 图象的FFT变换 clc; I=imread('005.bmp'); subplot(1,2,1) imshow(I); title('原图'); subplot(1,2,2) imhist(I); title('直方图'); colorbar; J=fft2(I); figure; subplot(1,2,1) imshow(J); title('FFT变换结果'); subplot(1,2,2) K=fftshift(J); imshow(K);

成都理工大学数字图像处理复习资料

成都理工大学数字图像处理复习资料 本页仅作为文档封面,使用时可以删除 This document is for reference only-rar21year.March

遥感与数字图像处理基础知识 一、名词解释: 数字影像:物体光辐射能量的数字记录形式或像片影像经采样量化后的二维数字灰度序列图像采样:将空间上连续的图像变换成离散点的操作称为采样 灰度量化:将像素灰度转换成离散的整数值的过程叫量化 像素:将地面信息离散化而形成的格网单元 二、填空题: 1、光学图像是一个连续的光密度函数。 2、数字图像是一个离散的光密度函数。 3、通过成像方式获取的图像是连续的,无法直接进行计算机处理。此外,有些遥感图像是通过摄影方式获取的,保存在胶片上。只有对这些获取的图像(或模拟图像)进行数字化后,才能产生数字图像。数字化包括两个过程:采样和量化。 4、一般来说,采样间距越大,图像数据量小,质量差;反之亦然。 5、一幅数字图像为8位量化,量化后的像素灰度级取值范围是0——255的整数。设该数字图像为600行600列,则图像所需要的存储空间为__ 360000______字节。 6、设有图像文件为200行,200列,8位量化,共7个波段,则该图像文件的大小为280000bit。 三、不定项选择题:(单项或多项选择) 1、数字图像的_____4___。 ①空间坐标是离散的,灰度是连续的②灰度是离散的,空间坐标是连续的 ③两者都是连续的④两者都是离散的 2、采样是对图像___2_____。 ①取地类的样本②空间坐标离散化③灰度离散化 3、量化是对图像____2____。 ①空间坐标离散化②灰度离散化③以上两者。 4、图像灰度量化用6比特编码时,量化等级为____2____。 ①32个②64个③128个④256个

数字图像处理实验指导书模板

《数字图像处理》实验指导书 编写: 罗建军 海南大学三亚学院 10月

目录 一、概述 ....................................................................... 错误!未定义书签。 二、建立程序框架 ....................................................... 错误!未定义书签。 三、建立图像类 ........................................................... 错误!未定义书签。 四、定义图像文档实现图像读/写.............................. 错误!未定义书签。 五、实现图像显示 ....................................................... 错误!未定义书签。 六、建立图像处理类................................................... 错误!未定义书签。 七、实现颜色处理功能............................................... 错误!未定义书签。 (一) 亮度处理................................................................. 错误!未定义书签。 (二) 对比度处理............................................................. 错误!未定义书签。 (三) 色阶处理................................................................. 错误!未定义书签。 (四) 伽马变换................................................................. 错误!未定义书签。 (五) 饱和度处理............................................................. 错误!未定义书签。 (六) 色调处理................................................................. 错误!未定义书签。 八、实现几何变换功能............................................... 错误!未定义书签。 (一) 图像缩放................................................................. 错误!未定义书签。 (二) 旋转......................................................................... 错误!未定义书签。 (三) 水平镜像................................................................. 错误!未定义书签。 (四) 垂直镜像................................................................. 错误!未定义书签。 (五) 右转90度................................................................. 错误!未定义书签。 (六) 左转90度................................................................. 错误!未定义书签。 (七) 旋转180度............................................................... 错误!未定义书签。 九、实现平滑锐化功能............................................... 错误!未定义书签。 十、图像处理扩展编程............................................... 错误!未定义书签。

数字图像处理实验 实验二

实验二MATLAB图像运算一、实验目的 1.了解图像的算术运算在数字图像处理中的初步应用。 2.体会图像算术运算处理的过程和处理前后图像的变化。 二、实验步骤 1.图像的加法运算-imadd 对于两个图像f x,y和 (x,y)的均值有: g x,y=1 f x,y+ 1 (x,y) 推广这个公式为: g x,y=αf x,y+β (x,y) 其中,α+β=1。这样就可以得到各种图像合成的效果,也可以用于两张图像的衔接。说明:两个示例图像保存在默认路径下,文件名分别为'rice.png'和'cameraman.tif',要求实现下图所示结果。 代码: I1 = imread('rice.png'); I2 = imread('cameraman.tif'); I3 = imadd(I1, I2,'uint8'); I4 = imadd(I1, I2,'uint16'); subplot(2, 2, 1), imshow(I1), title('?-ê?í???1'); subplot(2, 2, 2), imshow(I2), title('?-ê?í???2'); subplot(2, 2, 3), imshow(I3), title('8??í?????ê?'); subplot(2, 2, 4), imshow(I4), title('16??í?????ê?'); 结果截图:

2.图像的减法运算-imsubtract 说明: 背景图像可通过膨胀算法得到background = imopen(I,strel('disk',15));,要求实现下图所示结果。 示例代码如下: I1 = imread('rice.png'); background = imerode(I1, strel('disk', 15)); rice2 = imsubtract(I1, background); subplot(2, 2, 1), imshow(I1), title('?-ê?í???'); subplot(2, 2, 2), imshow(background), title('±3?°í???'); subplot(2, 2, 3), imshow(rice2), title('′|àíoóμ?í???'); 结果截图: 3.图像的乘法运算-immultiply

数字图像处理实验报告

数字图像处理实验 报告 学生姓名:学号: 专业年级: 09级电子信息工程二班

实验一常用MATLAB图像处理命令 一、实验内容 1、读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题。 实验结果如右图: 代码如下: Subplot (1,3,1) i=imread('E:\数字图像处理\2.jpg') imshow(i) title('RGB') Subplot (1,3,2) j=rgb2gray(i) imshow(j) title('灰度') Subplot (1,3,3) k=im2bw(j,0.5) imshow(k) title('二值') 2、对两幅不同图像执行加、减、乘、除操作,在同一个窗口内分成五个子窗口来分别显示,注上文字标题。 实验结果如右图: 代码如下: Subplot (3,2,1) i=imread('E:\数字图像处理 \16.jpg') x=imresize(i,[250,320]) imshow(x) title('原图x') Subplot (3,2,2) j=imread(''E:\数字图像处理 \17.jpg') y=imresize(j,[250,320]) imshow(y) title('原图y') Subplot (3,2,3) z=imadd(x,y) imshow(z)

title('相加结果');Subplot (3,2,4);z=imsubtract(x,y);imshow(z);title('相减结果') Subplot (3,2,5);z=immultiply(x,y);imshow(z);title('相乘结果') Subplot (3,2,6);z=imdivide(x,y);imshow(z);title('相除结果') 3、对一幅图像进行灰度变化,实现图像变亮、变暗和负片效果,在同一个窗口内分成四个子窗口来分别显示,注上文字标题。 实验结果如右图: 代码如下: Subplot (2,2,1) i=imread('E:\数字图像处理 \23.jpg') imshow(i) title('原图') Subplot (2,2,2) J = imadjust(i,[],[],3); imshow(J) title('变暗') Subplot (2,2,3) J = imadjust(i,[],[],0.4) imshow(J) title('变亮') Subplot (2,2,4) J=255-i Imshow(J) title('变负') 二、实验总结 分析图像的代数运算结果,分别陈述图像的加、减、乘、除运算可能的应用领域。 解答:图像减运算与图像加运算的原理和用法类似,同样要求两幅图像X、Y的大小类型相同,但是图像减运算imsubtract()有可能导致结果中出现负数,此时系统将负数统一置为零,即为黑色。 乘运算实际上是对两幅原始图像X、Y对应的像素点进行点乘(X.*Y),将结果输出到矩阵Z中,若乘以一个常数,将改变图像的亮度:若常数值大于1,则乘运算后的图像将会变亮;叵常数值小于是,则图像将会会暗。可用来改变图像的灰度级,实现灰度级变换,也可以用来遮住图像的某些部分,其典型应用是用于获得掩膜图像。 除运算操作与乘运算操作互为逆运算,就是对两幅图像的对应像素点进行点(X./Y), imdivide()同样可以通过除以一个常数来改变原始图像的亮度,可用来改变图像的灰度级,其典型运用是比值图像处理。 加法运算的一个重要应用是对同一场景的多幅图像求平均值 减法运算常用于检测变化及运动的物体,图像相减运算又称为图像差分运算,差分运算还可以用于消除图像背景,用于混合图像的分离。

数字图像处理程序

数字图像处理程序

数字图像处理实验 图像处理实验(一)直方图 灰度变换是图像增强的一种重要手段,使图像对比度扩展,图像更加清晰,特 征更加明显。 灰度级的直方图给出了一幅图像概貌的描述,通过修改灰度直方图来得到图像 增强。 1、灰度直方图 (1)计算出一幅灰度图像的直方图 clear close all I=imread('004.bmp'); imhist(I) title('实验一(1)直方图'); (2)对灰度图像进行简单的灰度线形变换, figure subplot(2,2,1) imshow(I); title('试验2-灰度线性变换'); subplot(2,2,2) histeq(I); (3)看其直方图的对应变化和图像对比度的变化。 原图像 f(m,n) 的灰度范围 [a,b] 线形变换为图像 g(m,n),灰度范围[a’,b’]公式:g(m,n)=a’+(b’-a’)* f(m,n) /(b-a) figure subplot(2,2,1) imshow(I) J=imadjust(I,[0.3,0.7],[0,1],1); title(' 实验一(3)用g(m,n)=a’+(b’-a’)* f(m,n) /(b-a)进行变换 '); subplot(2,2,2) imshow(J) subplot(2,2,3) imshow(I) J=imadjust(I,[0.5 0.8],[0,1],1); subplot(2,2,4) imshow(J) (4) 图像二值化(选取一个域值,(5) 将图像变为黑白图像) figure subplot(2,2,1)

数字图像处理——彩色图像实验报告

6.3实验步骤 (1)对彩色图像的表达和显示 * * * * * * * * * * * *显示彩色立方体* * * * * * * * * * * * * rgbcube(0,0,10); %从正面观察彩色立方体 rgbcube(10,0,10); %从侧面观察彩色立方 rgbcube(10,10,10); %从对角线观察彩色立方体 %* * * * * * * * * *索引图像的显示和转换* * * * * * * * * * f=imread('D:\Picture\Fig0604(a)(iris).tif'); figure,imshow(f);%f是RGB真彩图像 %rgb图像转换成8色索引图像,不采用抖动方式 [X1,map1]=rgb2ind(f,8,'nodither'); figure,imshow(X1,map1); %采用抖动方式转换到8色索引图像 [X2,map2]=rgb2ind(f,8,'dither'); figure,imshow(X2,map2); %显示效果要好一些 g=rgb2gray(f); %f转换为灰度图像 g1=dither(g);%将灰色图像经过抖动处理,转换打二值图像figure,imshow(g);%显示灰度图像 figure,imshow(g1);%显示抖动处理后的二值图像 程序运行结果:

彩色立方体原图 不采用抖动方式转换到8色索引图像采用抖动方式转换到8色索引图像 灰度图像抖动处理后的二值图像

(2)彩色空间转换 f=imread('D:\Picture\Fig0604(a)(iris).tif'); figure,imshow(f);%f是RGB真彩图像 %转换到NTSC彩色空间 ntsc_image=rgb2ntsc(f); figure,imshow(ntsc_image(:,:,1));%显示亮度信息figure,imshow(ntsc_image(:,:,2));%显示色差信息figure,imshow(ntsc_image(:,:,3));%显示色差信息 %转换到HIS彩色空间 hsi_image=rgb2hsi(f); figure,imshow(hsi_image(:,:,1));%显示色度信息figure,imshow(hsi_image(:,:,2)); %显示饱和度信息figure,imshow(hsi_image(:,:,3));%显示亮度信息 程序运行结果: 原图 转换到NTSC彩色空间

数字图像处理实验报告(完整版)

数字图像处理 实验一 MATLAB数字图像处理初步 一、显示图像 1.利用imread( )函数读取一幅图像,假设其名为lily.tif,存入一个数组中; 2.利用whos 命令提取该读入图像flower.tif的基本信息; 3.利用imshow()函数来显示这幅图像; 实验结果如下图: 源代码: >>I=imread('lily.tif') >> whos I >> imshow(I) 二、压缩图像 4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息; 5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg文件,设为lily.jpg;语法:imwrite(原图像,新图像,‘quality’,q), q取0-100。 6.同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp图像,设为flily.bmp。7.用imread()读入图像Sunset.jpg和Winter.jpg; 8.用imfinfo()获取图像Sunset.jpg和Winter.jpg的大小; 9.用figure,imshow()分别将Sunset.jpg和Winter.jpg显示出来,观察两幅图像的质量。其中9的实验结果如下图:

源代码: 4~6(接上面两个) >>I=imread('lily.tif') >> imfinfo 'lily.tif'; >> imwrite(I,'lily.jpg','quality',20); >> imwrite(I,'lily.bmp'); 7~9 >>I=imread('Sunset.jpg'); >>J=imread('Winter.jpg') >>imfinfo 'Sunset.jpg' >> imfinfo 'Winter.jpg' >>figure(1),imshow('Sunset.jpg') >>figure(2),imshow('Winter.jpg') 三、二值化图像 10.用im2bw将一幅灰度图像转化为二值图像,并且用imshow显示出来观察图像的特征。实验结果如下图: 源代码: >> I=imread('lily.tif') >>gg=im2bw(I,0.4); F>>igure, imshow(gg)

matlab数字图像处理程序

数字图像处理程序 实验一 1、图像的缩放: A=imread('F:\MATLAB程序\数字图像处理实验\kunkun.jpg'); subplot(311); imshow(A); title('原图') B=imresize(A,3); subplot(312); imshow(B); title('三倍图'); C=imresize(A,0.5); subplot(313); imshow(C); title('二分之一图'); 2、图像的镜像: A1=imread('F:\MATLAB程序\数字图像处理实验\kunkun.jpg'); figure subplot(2,2,1), imshow(uint8(A1)); H=size(A1); title('原像') A2(1:H(1),1:H(2),1:H(3))=A1(H(1):-1:1,1:H(2),1:H(3));%垂直镜像subplot(2,2,2), imshow(uint8(A2)); title('垂直镜像') A3(1:H(1),1:H(2),1:H(3))=A1(1:H(1),H(2):-1:1,1:H(3));%水平镜像subplot(2,2,3), imshow(uint8(A3)); title('水平镜像') A4(1:H(1),1:H(2),1:H(3))=A1(H(1):-1:1,H(2):-1:1,1:H(3));%对角镜像subplot(2,2,4), imshow(uint8(A4)); title('对角镜像') 3、图像的旋转: I = imread('F:\MATLAB程序\数字图像处理实验\kunkun.jpg'); subplot(141); imshow(I); title('原图'); theta1 = 45;%旋转的角度为45度 K1 = imrotate(I,theta1); % 对图像进行旋转 subplot(142);

数字图像处理实验报告

数字图像处理实验报告

实验一数字图像处理编程基础 一、实验目的 1. 了解MA TLAB图像处理工具箱; 2. 掌握MA TLAB的基本应用方法; 3. 掌握MA TLAB图像存储/图像数据类型/图像类型; 4. 掌握图像文件的读/写/信息查询; 5. 掌握图像显示--显示多幅图像、4种图像类型的显示方法; 6. 编程实现图像类型间的转换。 二、实验内容 1. 实现对图像文件的读/写/信息查询,图像显示--显示多幅图像、4种图像类型的显示方法、图像类型间的转换。 2. 运行图像处理程序,并保存处理结果图像。 三、源代码 I=imread('cameraman.tif') imshow(I); subplot(221), title('图像1'); imwrite('cameraman.tif') M=imread('pout.tif') imview(M) subplot(222), imshow(M); title('图像2'); imread('pout.bmp') N=imread('eight.tif') imview(N) subplot(223), imshow(N); title('图像3'); V=imread('circuit.tif') imview(V) subplot(224), imshow(V); title('图像4');

N=imread('C:\Users\Administrator\Desktop\1.jpg') imshow(N); I=rgb2gary(GRB) [X.map]=gary2ind(N,2) RGB=ind2 rgb(X,map) [X.map]=gary2ind(I,2) I=ind2 gary(X,map) I=imread('C:\Users\dell\Desktop\111.jpg'); subplot(231),imshow(I); title('原图'); M=rgb2gray(I); subplot(232),imshow(M); [X,map]=gray2ind(M,100); subplot(233),imshow(X); RGB=ind2rgb(X,map); subplot(234),imshow(X); [X,map]=rbg2ind(I); subplot(235),imshow(X); 四、实验效果

数字图像处理实验

《数字图像处理》 实验报告 学院:信息工程学院 专业:电子信息工程 学号: 姓名: 2015年6月18日

目录 实验一图像的读取、存储和显示 (2) 实验二图像直方图分析 (6) 实验三图像的滤波及增强 (15) 实验四噪声图像的复原 (19) 实验五图像的分割与边缘提取 (23) 附录1MATLAB简介 (27)

实验一图像的读取、存储和显示 一、实验目的与要求 1.熟悉及掌握在MATLAB中能够处理哪些格式图像。 2.熟练掌握在MATLAB中如何读取图像。 3.掌握如何利用MATLAB来获取图像的大小、颜色、高度、宽度等等相关信息。 4.掌握如何在MATLAB中按照指定要求存储一幅图像的方法。 5.图像的显示。 二、实验原理 一幅图像可以被定义为一个二维函数f(x,y),其中x和y是空间(平面)坐标,f 在任何坐标处(x,y)处的振幅称为图像在该点的亮度。灰度是用来表示黑白图像亮度的一个术语,而彩色图像是由单个二维图像组合形成的。例如,在RGB彩色系统中,一幅彩色图像是由三幅独立的分量图像(红、绿、蓝)组成的。因此,许多为黑白图像处理开发的技术适用于彩色图像处理,方法是分别处理三副独立的分量图像即可。图像关于x和y坐标以及振幅连续。要将这样的一幅图像转化为数字形式,就要求数字化坐标和振幅。将坐标值数字化成为取样;将振幅数字化成为量化。采样和量化的过程如图1所示。因此,当f的x、y分量和振幅都是有限且离散的量时,称该图像为数字图像。 三、实验设备 (1) PC计算机 (2) MatLab软件/语言包括图像处理工具箱(Image Processing Toolbox) (3) 实验所需要的图片 四、实验内容及步骤 1.利用imread( )函数读取一幅图像,假设其名为flower.tif,存入一个数组中; 2.利用whos 命令提取该读入图像flower.tif的基本信息; 3.利用imshow()函数来显示这幅图像; 4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息; 5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg文件设为flower.jpg语法:imwrite(原图像,新图像,‘quality’,q), q取0-100。 6.同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp图像,设为flower.bmp。 7.用imread()读入图像:Lenna.jpg 和camema.jpg; 8.用imfinfo()获取图像Lenna.jpg和camema.jpg 的大小;

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