当前位置:文档之家› 实验指导数字图像处理

实验指导数字图像处理

实验指导数字图像处理
实验指导数字图像处理

实验1 图像的基本操作

一、实验目的:

学会用MATLAB工具箱中的函数对图像进行读取、显示和保存等的基本操作。

二、实验内容:

1、仔细阅读MATLAB帮助文件中有关函数imread, size, whos, imshow, imwrite的使用说明,能充分理解其使用方法。

2、并能运用以上函数完成相应的实验操作。

三、实验要求:

掌握并能熟练应用上述函数。实验报告需要提交每步处理的命令并回答相关的问题。

四、实验相关知识:

学习有关函数的使用

imread

使用函数imread可以将图像读入MATLAB环境,imreaed的语法为imread (?filename?),其中filename是一个含有图像文件全名的字符串(包括任何可用的扩展名)。例如,f=imread(…chestxray.jpg?);

要想读取指定路径中的图像,最简单的办法就是在filename中输入完整的或相对的。例如,f=imread(…D:\myimages\chestxray.jpg?);

size

函数size可给出一幅图像的行数和列数。用如下格式可自动确定一幅图像的大小:[M,N]=size(f); 该语法将返回图像的行数(M)和列数(N)。

whos

函数whos可以显示出一个数组的附加信息。语句为:whos f

imshow

在MATLAB桌面上图像一般使用函数imshow来显示,该函数的基本语法为:imshow(f, G)。其中,f是一个图像数组,G是显示该图像的灰度级数。若省略G,则默认的灰度级数是256。语法imshow(f, [low high])会将所有小于或等于low的值都显示为黑色,所有大于或等于high的值都显示为白色。语法imshow(f,[ ])可以将变量low设置为数组f的最小值,将变量high设置为数组f的最大值。这

一形式在显示一幅动态范围较小的图像或既有正值又有负值的图像时非常有用。

imwrite

函数imwrite可以将图像写到磁盘上,该函数的语法为imwrite(f, ?filename?)。该语法结构中,filename中包含的字符串必须是一种可识别的文件格式扩展名。若filename中不包含路径信息,则imwrite会将文件保存到当前的工作目录中。另外一种常用的只适用于JPEG图像的函数用法是:imwrite(f, ?filename.jpg?, ?quality?, q),q是一个0到100间的整数,q越小,图像退化就越严重。

五、实验步骤:

1、读入和显示图象

(1)从硬盘中读入一幅名为1a.tif的图像,用whos提取该图像的基本信息,并使用imshow将其显示出来。

(2)读入图像1b.tif,并使用imshow显示。这幅图像的动态范围很小,但可以使用下列语句修正其显示结果:imshow(h, [ ])。写出两次图

像显示效果有什么差别。

2、保存图像:读入1c.tif,分别以q=50、25、15和0将该图像用imwrite 函数保存到硬盘上,文件名分别为1c50.jpg,1c25.jpg,1c15.jpg,1c0.jpg。写出q值对保存的图像有何影响。

3、用MATLAB语言编程读入一幅24bit的彩色图像,将其转化成灰度图像、二值图像。并将所有图像保存。

实验2 图像的灰度变换

一、实验目的:

学会用MATLAB软件对图像进行运算和灰度变换。

二、实验内容:

用+、-、*、/、imabsdiff、imadd、imcomplment、imdivide、imlincomb、immultiply、imsubtract和imadjust等函数生成各类灰度变换图像。

三、实验报告要求:写出每步处理的命令,并提交原图像和处理后的图像。

四、实验相关知识

1、代数运算

两幅图像之间进行点对点的加、减、乘、除运算后得到输出图像。我们可以分别使用MATLAB的基本算术符+、-、*、/来执行图像的算术操作,但是在此之前必须将图像转换为适合进行基本操作的双精度类型(命令函数为double())。为了更方便对图像进行操作,图像处理工具箱中也包含了一个能够实现所有非稀疏数值数据的算术操作的函数集合。如下所示:

imabsdiff:计算两幅图像的绝对差值

imadd:两个图像的加法

imcomplement:一个图像的补

imdivide:两个图像的除法

imlincomb:计算两幅图像的线性组合

immultiply:两个图像的乘法

imsubtract:两个图像的减法

使用图像处理工具箱中的图像代数运算函数无需再进行数据类型间的转换,这些函数能够接受uint8和uint16数据,并返回相同格式的图像结果。

代数运算的结果很容易超出数据类型允许的范围。图像的代数运算函数使用以下截取规则使运算结果符合数据范围的要求:超出数据范围的整型数据将被截取为数据范围的极值,分数结果将被四舍五入。

2、灰度变换

点运算也称为灰度变换,是一种通过对图像中的每个像素值进行运算,从而改善图像显示效果的操作。

对于特定变换函数f的灰度变换,用户可以利用MATLAB强大的矩阵运算能力,对图像数据矩阵调用各种MATLAB计算函数进行处理。需要注意的是由于MATLAB不支持uint8类型数据的矩阵运算,所以首先要将图像数据转换为双精度类型,计算完成后再将其转换为uint8类型(命令为uint8( ))。

而在MATLAB图像处理工具箱中也提供了一个灰度变换函数imadjust,其语法格式为:J=imadjust(I, [low_in high_in], [low_out high_out], gamma)。[low_in high_in]是原图像中要变换的灰度范围,[low_out high_out]是指定变换后的灰度范围,两者的默认值均为[0 1]。gamma的取值决定了输入图像到输出图像的灰度映射方式,即决定是增强低灰度还是增强高灰度。gamma大于1、等于1和小于1的映射方式如下图所示。

五、实验步骤:

1、仔细阅读imabsdiff、imadd、imcomplment、imdivide、imlincomb、immultiply

和imsubtract的帮助文件(help imabsdiff),并练习相关函数的使用。

2、加法运算:将rice.tif和cameraman.tif相加并显示相加结果。若图像每个

像素加上一个常数则亮度会增加,将rice.tif每个像素加上100,显示出

结果图像。

3、减法运算:将上一步中亮度增加的rice图像减去原rice.tif图像,显示出

结果,并想想为什么会有这样的结果。

4、乘、除法运算:一个图像乘以一个大于1的数会使图像变亮,乘以一个

小于1的数会使图像变暗,使用immultiply对图像进行乘法运算,乘以

一个常数或是乘以另一个图像。两幅图像的除法操作可以给出相应像素

值的变化比率,使用imdivide函数进行两幅图像的除法。

5、实现下图(a)和(b)所示的灰度变换(图中t1、t2、s1、s2自己设置合适的

数值)。

6、阅读imadjust的帮助文件,使用函数imadjust进行灰度变换。设置不同

的[low_in high_in]、[low_out high_out]和gamma值,实现多种灰度变换。

实验3 图像的直方图均衡化

一、实验目的:理解直方图的概念,利用Matlab获取和绘制图像的直方图,并进行直方图均衡化处理。

二、实验内容:学习并应用imhist, histeq等函数进行直方图处理

三、实验要求:提交原图像和各种直方图曲线,以及按直方图处理后的图像。

四、实验步骤

1、生成并绘制图像的直方图

在处理图像直方图的工具箱中,核心函数是imhist,其基本语法为:h=imhist(f,b)。其中,f为输入图像,h为其直方图,b是用于形成直方图的灰度级的个数,默认值为256。例如,若我们要处理一幅uint8类图像并令b=2,则亮度范围被分成两部分:0至127和128至255。所得的直方图将有两个值:h(1)等于图像在区间[0,127]内的像素总数,h(2)等于图像在区间[128,255]内的像素总数。使用p=imhist(f,b)/numel(f)可以得到归一化直方图。函数numel(f)给出数组f 中的元素个数(即图像中的像素数)。

(1)阅读imhist的帮助文件;

(2)读入一幅图像,使用imhist( )函数产生图像的直方图,分析它的直方图分布及反映图像的特点;

(3)使用imadjust( )函数产生图像的对比度图,并使用imhist( )函数产生两个图像的直方图,分析图像对比度变化后的效果;

2、直方图均衡化

直方图均衡化由工具箱中的函数histeq实现,该函数语法为g=histeq(f,nlev)。式中,f为输入图像,nlev是为输出图像指定的灰度级数。histeq中的默认值为nlev=64。一般来说,我们将nlev赋值为灰度级的最大可能数量(通常为256)。

读入一幅图像,使用histeq ( )函数均衡化图像,分析变化后图像的效果)。

实验4 图像的空间滤波

一、实验目的:加深对基于模板操作的空间滤波方法的理解,学习用Matlab对图像进行空间滤波处理,感受不同滤波方法对图像产生的不同影响。

二、实验内容:

1、用MATLAB图像处理工具箱中的演示程序感受不同滤波方法对图像产生的

效果。

在MATLAB命令窗口中输入nrfiltdemo。出现“Noise Reduction Filtering Demo”窗口,在这里选择不同的噪声类型(gaussian或salt&pepper或speckle),并设置不同的噪声参数(mean、variance或density),“Add Noise”后,可以选择滤波器的种类(中值滤波median或均值滤波averaging或自适应滤波adaptive)并设置模板尺寸,“Apply Filter”后即可观察到滤波效果。

2、空间线形滤波函数的应用

工具箱中的函数imfilter常被用来实现线形空间滤波,该函数的语法为:g=imfilter(f, w, filtering_mode, boundary_options, size_options)。其中,f是输入图像,w为滤波模板,g为滤波结果,其他参数见下表。

例如,对blood1.tif使用一个权值全部为1的5×5滤波器进行均值滤波:

I=imread('blood1.tif');

h=ones(5,5)/25;

I2=imfilter(I,h);

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

subplot(1,2,2),imshow(I2)

imfilter函数使用与图像代数运算函数相同的方法控制数据类型,输出图像与输入图像有相同的数据类型和格式。Imfilter函数使用双精度浮点算术计算每一个输出像素的数值,如果结果超过数据类型的范围,那么imfilter函数将按照数据类型允许的数据范围对结果进行截取。

Imfilter函数既能够使用卷积,也能使用相关来进行滤波,由参数filtering_mode来设定,缺省设置为…corr?,若想使用卷积方法实现滤波,则可用如下语句表示:imfilter(A, h, …conv?)。

还要注意到边界问题。当计算一幅图像边界的输出像素时,模板的一部分通常都会超出图像边界。如果使用缺省的边界参数选项,那么imfilter函数假设这些不存在的像素为0,即零填充。Imfilter函数还支持另外三种可选的边界填充方法:…replicate?,…symmetric?和…circular?。

(1)上面对blood1.tif平滑滤波的例子中,对每条语句进行注释。

(2)选用尺寸分别为7×7,15×15,31×31的模板对blood1.tif进行平滑滤波,有怎样的结果?边界选项如果分别选默认值和…replicate?又会有怎样的结果?写出命令。

三、实验要求:写出各步骤的命令,提交原图像和相应滤波处理后的图像。

实验5 图像的频域滤波

一、实验目的:加深对图像的频域处理的理解,利用Matlab对图像进行频域滤波。

二、实验内容:学习并应用fft2、ifft2等函数对图象进行频域处理。

1、用MATLAB图像处理工具箱中的演示程序感受不同滤波方法对图像产

生的效果。输入命令edgedemo,出现“Edge detection demo”窗口;输入命令firdemo,出现“2-D FIR filtering and filter design demo”窗口。

2、图像的傅立叶变换及可视化:

我们可以用如下语句来计算图像f的傅立叶变换并显示其频谱:F=fft2(f);

S=abs(F); figure,imshow(S,[]);

Fc=fftshift(F); figure,imshow(abs(Fc),[]);

S2=log(1+abs(Fc)); figure,imshow(S2,[])。

一个大小为M×N图像数组f可以通过工具箱中的函数fft2得到,简单语法为:F=fft2(f)。该函数返回一个大小仍为M×N的傅立叶变换,计算所得的数据原点在左上角。傅立叶频谱可以使用函数abs来获得:S=abs(F)。我们可以是用函数fftshift将变换的原点移动到频率矩形的中心。我们可以使用对数来处理该问题,使可视细节增加。

函数ifft2可计算傅里叶逆变换,该函数得基本语法为:g=ifft2(F)。若用于计算的F输入是实数,则理论上逆变换结果也应该是实数。然而,ifft2的输出实际上都会有很小的虚数分量,这是由浮点计算的舍入误差所导致的。因此,最好是在计算逆变换后提取结果的实部,以便获得仅由实数组成的图像。两种操作可以合并在一起,如下所示:g=real(ifft2(F))。

根据上面的叙述,读入一幅图像,计算其傅里叶变换,显示其频谱,并计算傅里叶逆变换。想一想,imshow函数为什么要用一个空矩阵做参数?

三、实验要求:写出处理过程,提交原图像和相关滤波处理后的图像,并回答相关的问题。

实验6 彩色图像的处理

一、实验目的:加深对彩色图像、彩色空间概念的理解,掌握色彩变换的方法。

二、实验内容:

1、RGB图像称为真彩图像,其每一个像素由三个数值来指定红、绿和蓝颜

色分量。令FR、FG和FB分别代表三种RGB分量图像,一幅RGB图像就是利用cat操作将这些分量图像组合成的彩色图像:rgb_image=cat(3,FR,FG,FB)。而下面的命令可以提取出三幅分量图像:FR=rgb_image(:,:,1); FG=rgb_image(:,:,2); FB=rgb_image(:,:,3)。要注意到,一个双精度类型的RGB数组中,每一个颜色分量都是一个[0, 1]范围内的数值;而uint8类型的RGB数组,每一个颜色分量都在[0, 255]范围内。

(1)选取几幅彩色图像提取它们的RGB分量,并再组合成彩色图像。

(2)根据所学知识,分别做出全红、全绿、全蓝的三幅图像。

2、伪彩色增强:伪彩色增强是一种将二维图像像素逐点映射到由三基色确

定的三维色度空间中的技术。伪彩色增强又有空域方法和频域方法,下

面采用亮度切割的方法,编程实现对一幅灰度图像的伪彩色增强。提示:(1)复习亮度切割的原理;(2)可以从最简单的变换成2种色彩着手,

即灰度值大于某个阈值变换为一种色彩,而小于该阈值的变换为另一种

色彩;(3)阈值和变换成何种色彩可以自定;(4)有能力的同学可以变

换成多种色彩的伪彩色增强图。

3、真彩色增强:在MATLAB中,调用imfilter函数对一幅真彩色(三维数

据)图像使用二维滤波器进行滤波,就相当于使用同一个二维滤波器对

数据的每一个平面单独进行滤波。使用的语法和单色图像的类似:

fc_filtered=imfilter(fc,w)。选取一幅彩色图像,用imfilter函数对其进行

平滑处理。

三、实验要求:写出处理过程,提交原图像和相应变换处理后的图像。

实验7 图像的噪声及恢复

一、实验目的:了解图像的噪声模型,学习降低噪声、恢复图像的处理方法

二、实验内容:学习并使用imnoise、spfilt等产生噪声和滤波的函数

1、噪声模拟

图像增强操作主要是针对图像的各种噪声而言的。数字图像产生噪声的途径有很多种。MATLAB图像处理工具箱提供imnoise函数,可以用该函数给图像添加不同种类的噪声,该函数的调用格式如下:g=imnoise(f, …type?, parameters)。f是输入图像,type和parameters的说明见下表:

函数imnoise在给图像添加噪声前,将它转换为范围[0 1]内的double类图像。指定噪声参数时必须考虑到这一点。例如要将均值为64、方差为400的高斯噪声添加到一幅uint8类图像上,我们可将均值标度为64/255,将方

差标度为400/(255)2,以便作为函数imnoise的输入。

读入一幅图像,使用上述函数对它添加各类噪声。

2、退化函数建模

在图像复原问题中,一个重要的退化模型是在图像获取时传感器和场景之间的均匀线性运动而产生的图像模糊。我们可以使用函数fspecial对图像模糊建模:PSF=fspecial(…motion?,len,theta)。调用fspecial将返回PSF,它近似于由有着len个像素的摄像机的线性移动的效果。参数theta以度为单位,以顺时针方向对正水平轴度量。len的默认值是9,theta的默认值是0,它对应于在水平方向上的9个像素的移动。

我们使用函数imfilter来创建一个已知PSF或用刚刚描述的方法计算得到的PSF的退化图像:g=imfilter(f, PSF, ?circular?)。其中,?circular?用来减少边界效应。然后通过添加适当的噪声来构造退化的图像模型:g=g+noise。噪声的产生方法见内容1。

例如,我们先产生一个测试板图像:f=checkerboard(8)。

退化图像使用如下命令产生:PSF=fspecial(…motion?,7,45); gb=imfilter(f, PSF, …circular?)。

噪声模式使用下面命令产生:noise=imnoise(zeros(size(f)), …gaussian?, 0,

0.001)。通常,我们会直接使用imnoise(gb, …gaussian?, 0, 0.001)将噪声加到gb

上,然而由于稍后需要噪声图像,所以在此我们单独计算噪声。

加了噪声的模糊图像如下产生:g=gb+noise。

运行上述命令,观察实验结果,注释每条命令。仿照上述命令自己产生一个模糊噪声图像。

3、直接逆滤波和维纳滤波:

维纳滤波使用函数deconvwnr来实现。函数deconvwnr有三种可能的语法形式。在这些形式中,g代表退化图像,fr是复原图像。第一种语法形式fr=deconvwnr(g, PSF)假设信噪比为零,从而维纳滤波器就是逆滤波器。第二种语法形式fr=deconvwnr(g, PSF, NSPR)假设信噪比功率已知,或是个常数或是个数组,函数接受其中的任何一个,这是一个参数维纳滤波器。最后,语法形式fr=deconvwnr(g, PSF, NACORR, FACORR)假设噪声和未退化图像的自相关函数NACORR和FACORR是已知的。

我们可以使用内容2中的例子建立加了噪声的模糊图像模型,使用deconvwnr函数来复原模糊噪声图像。如下命令:

fr1=deconvwnr(g, PSF);fr1是直接逆滤波的结果,g是污染了的图像,PSF是上例中计算出的点扩散函数。由于噪声的影响,结果并不理想。那么如果g不含噪声,使用直接逆滤波效果又是如何呢?实验验证你的结论。

我们还可以用第二种语法形式的参数维纳滤波器进行滤波,命令如下:

%计算信噪比

Sn=abs(fft2(noise)).^2;

nA=sum(Sn(:))/prod(size(noise));

Sf=abs(fft2(f)).^2;

fA=sum(Sf(:))/prod(size(f));

R=nA/fA;

%维纳滤波

fr2=deconvwnr(g, PSF, R);

fr2和fr1相比较效果要优越得多。

运行上述命令,观察实验结果,注释每条命令,并回答相关问题。仿照上述命令对自己产生的模糊噪声图像进行恢复。

三、实验要求:写出处理过程,提交原图像、噪声图像、模糊图像和恢复后

的图像,注释每条命令,并回答相关问题。

实验8 综合设计实验

题目一、人脸识别系统

要求:自行采集不同人脸图像,设计识别系列工作界面,研究任意人脸识别算法,完成自动的人脸识别系统。(采用MATLAB语言,设计方案和算法自定,人脸图像不能少于50幅,成绩根据识别准确率高低、识别速度给定)

题目二\、基于图像处理车牌定位与字符分割综合设计实验

要求:自行采集车辆图像,设计系统工作界面,研究车牌定位和字符分割算法,完成静止车辆车牌号码的自动分割。(采用MATLAB语言,设计方案和算法自定,待分割图像不能少于3幅,原像中至少包含一种噪声(高斯分布、均匀分布、椒盐噪声等)成绩根据字符分割准确率高低、分割速度给定)

数字图像处理实验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);

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

数字图像处理 实验指导书 学院:通信与电子工程学院 专业:电子信息工程 班级: 学号: 姓名: 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%

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

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

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

东南大学数字图像处理实验报告

数字图像处理 实验报告 学号:04211734 姓名:付永钦 日期:2014/6/7 1.图像直方图统计 ①原理:灰度直方图是将数字图像的所有像素,按照灰度值的大小,统计其所出现的频度。 通常,灰度直方图的横坐标表示灰度值,纵坐标为半个像素个数,也可以采用某一灰度值的像素数占全图像素数的百分比作为纵坐标。 ②算法: clear all PS=imread('girl-grey1.jpg'); %读入JPG彩色图像文件figure(1);subplot(1,2,1);imshow(PS);title('原图像灰度图'); [m,n]=size(PS); %测量图像尺寸参数 GP=zeros(1,256); %预创建存放灰度出现概率的向量 for k=0:255 GP(k+1)=length(find(PS==k))/(m*n); %计算每级灰度出现的概率end figure(1);subplot(1,2,2);bar(0:255,GP,'g') %绘制直方图 axis([0 255 min(GP) max(GP)]); title('原图像直方图') xlabel('灰度值') ylabel('出现概率') ③处理结果:

原图像灰度图 100 200 0.005 0.010.0150.020.025 0.030.035 0.04原图像直方图 灰度值 出现概率 ④结果分析:由图可以看出,原图像的灰度直方图比较集中。 2. 图像的线性变换 ①原理:直方图均衡方法的基本原理是:对在图像中像素个数多的灰度值(即对画面起主 要作用的灰度值)进行展宽,而对像素个数少的灰度值(即对画面不起主要作用的灰度值)进行归并。从而达到清晰图像的目的。 ②算法: clear all %一,图像的预处理,读入彩色图像将其灰度化 PS=imread('girl-grey1.jpg'); figure(1);subplot(2,2,1);imshow(PS);title('原图像灰度图'); %二,绘制直方图 [m,n]=size(PS); %测量图像尺寸参数 GP=zeros(1,256); %预创建存放灰度出现概率的向量 for k=0:255

数字图像处理实验 实验二

实验二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)

数字图像处理实验报告

数字图像处理实验报告

实验一数字图像处理编程基础 一、实验目的 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); 四、实验效果

数字图像处理实验报告

数字图像处理试验报告 实验二:数字图像的空间滤波和频域滤波 姓名:XX学号:2XXXXXXX 实验日期:2017 年4 月26 日 1.实验目的 1. 掌握图像滤波的基本定义及目的。 2. 理解空间域滤波的基本原理及方法。 3. 掌握进行图像的空域滤波的方法。 4. 掌握傅立叶变换及逆变换的基本原理方法。 5. 理解频域滤波的基本原理及方法。 6. 掌握进行图像的频域滤波的方法。 2.实验内容与要求 1. 平滑空间滤波: 1) 读出一幅图像,给这幅图像分别加入椒盐噪声和高斯噪声后并与前一张图显示在同一 图像窗口中。 2) 对加入噪声图像选用不同的平滑(低通)模板做运算,对比不同模板所形成的效果,要 求在同一窗口中显示。 3) 使用函数 imfilter 时,分别采用不同的填充方法(或边界选项,如零填 充、’replicate’、’symmetric’、’circular’)进行低通滤波,显示处理后的图 像。 4) 运用 for 循环,将加有椒盐噪声的图像进行 10 次,20 次均值滤波,查看其特点, 显 示均值处理后的图像(提示:利用fspecial 函数的’average’类型生成均值滤波器)。 5) 对加入椒盐噪声的图像分别采用均值滤波法,和中值滤波法对有噪声的图像做处理,要 求在同一窗口中显示结果。 6) 自己设计平滑空间滤波器,并将其对噪声图像进行处理,显示处理后的图像。 2. 锐化空间滤波 1) 读出一幅图像,采用3×3 的拉普拉斯算子 w = [ 1, 1, 1; 1 – 8 1; 1, 1, 1] 对其进行滤波。 2) 编写函数w = genlaplacian(n),自动产生任一奇数尺寸n 的拉普拉斯算子,如5 ×5的拉普拉斯算子 w = [ 1 1 1 1 1 1 1 1 1 1 1 1 -24 1 1 1 1 1 1 1 1 1 1 1 1] 3) 分别采用5×5,9×9,15×15和25×25大小的拉普拉斯算子对

数字图像处理实验

《数字图像处理》 实验报告 学院:信息工程学院 专业:电子信息工程 学号: 姓名: 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 的大小;

数字图像处理实验 2017

实验一 Matlab图像基本操作 一、实验目的 熟悉利用Matlab进行图像处理的基本操作,了解图像数据的存储形式及进行图像处理编程的步骤方法。 二、实验内容 1、图像读写与显示 重点函数:imread, imwrite, imshow 2、彩色图像灰度化 计算公式:Y = R*0.299 + G*0.587 + B*0.114 3、图像马赛克 局部平均,改变窗口大小比较处理结果,如取2×2、4×4或更大尺寸的窗口 4、图像平移 分别完成图像水平方向、竖直方向和两个方向的平移 三、实验要求 1、编写代码,完成各项实验内容 2、总结实验中遇到问题及解决方案,书写实验报告 实验二图像点运算 一、实验目的 理解图像灰度变换和直方图的概念,掌握灰度变换和直方图均衡化的原理及实现方法。 二、实验内容 1、线性灰度变换 2、非线性变换 =,修改指数γ观察图像效果,总结指数项γ合理取值的一般规律 s crγ 3、直方图 绘制直方图,观察图像效果与直方图的关系 4、直方图均衡化 利用直方图均衡化确定灰度变换关系,画出变换曲线及图像处理前后的直方图 三、实验要求 1、编写代码,完成各项实验内容 2、总结实验中遇到问题及解决方案,书写实验报告

实验三邻域运算 一、实验目的 1.巩固对图像增强的认识,明确图像空域处理的类型 2.理解图像平滑与图像锐化的概念 3.掌握图像模板卷积运算的实现方法 4.锻炼编程开发图像处理算法的能力 二、实验准备 1.了解图像处理点运算和邻域运算的区别 2.学习利用模板卷积的方法进行图像邻域运算 3.复习均值滤波和中值滤波的原理 4.列出常用的模板形式,思考中值滤波要用到的简单排序方法 5.分析对比图像平滑和图像锐化模板的差异 三、实验内容与步骤 1.列出常用的卷积模板 2.基于3×3的模板,编写均值滤波的处理程序,处理含有加性高斯噪声和椒盐噪声的图像,观察处理结果 3.编写中值滤波程序,处理相同的图像与均值滤波进行比较;改变模板尺寸观察处理结果 4.编程实现利用一阶微分算子和二阶拉普拉斯算子进行图像锐化的程序 5.对比不同的邻域运算结果,体会图像锐化与图像平滑的区别 四、实验报告与思考题 1.总结实验内容及步骤方法完成实验报告,报告中要求有关键代码的注释说明及程序运行和图像处理结果 2.实验报告中回答以下问题 (1)均值滤波和中值滤波分别适用于处理哪类图像? (2)图像平滑和图像锐化所采用的模板有什么不同? (3)邻域运算的模板尺寸对处理结果有什么影响?

数字图像处理实验

学院计算机与通信工程学院专业生物医学工程专业 班级51111 学号5111133 姓名杨静 指导教师贾朔 2014年04月21日

实验一图像的基本运算 一、实验目的: 1、掌握图像处理中的点运算、代数运算、逻辑运算和几何运算及应用。 2、掌握各种运算对于图像处理中的效果。 二、实验内容: 1、(1)选择一幅图像lena8.jpg,设置输入/输出变换的灰度级范围,a=0.2,b=0.6,c=0.1,d=0.9. (2)设置非线性扩展函数的参数c=2. (3)采用灰度级倒置变换函数s=255-r进行图像变换 (4)设置二值化图像的阈值,分别为level=0.4,level=0.7 解:参考程序如下: I=imread('C:\lena8.jpg'); figure; subplot(2,3,1); imshow(I); title('原图'); J=imadjust(I,[0.3;0.6],[0.1;0.9]); %设置灰度变换的范围 subplot(2,3,2); imshow(J); title('线性扩展'); I1=double(I); %将图像转换为double类型 I2=I1/255; %归一化此图像 C=2; K=C*log(1+I2); %求图像的对数变换 subplot(2,3,3); imshow(K); title('非线性扩展'); M=im2bw(I,0.5); M=~M; %M=255-I; %将此图像取反 %Figure subplot(2,3,4); imshow(M); title('灰度倒置'); N1=im2bw(I,0.4); %将此图像二值化,阈值为0.4 N2=im2bw(I,0.7); %将此图像二值化,阈值为0.7 subplot(2,3,5); imshow(N1); title('二值化阈值0.4'); subplot(2,3,6); imshow(N2); title('二值化阈值0.7');

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