文档库 最新最全的文档下载
当前位置:文档库 › 数字图像处理实验报告概况

数字图像处理实验报告概况

数字图像处理实验报告概况
数字图像处理实验报告概况

数字图像处理实验报告

实验一数字图像基本操作及灰度调整

一、实验目的

1)掌握读、写图像的基本方法。

2)掌握MATLAB语言中图像数据与信息的读取方法。

3)理解图像灰度变换处理在图像增强的作用。

4)掌握绘制灰度直方图的方法,理解灰度直方图的灰度变换及均衡化的方法。

二、实验内容与要求

1.熟悉MATLAB语言中对图像数据读取,显示等基本函数

特别需要熟悉下列命令:熟悉imread()函数、imwrite()函数、size()函数、Subplot ()函数、Figure()函数。

1)将MA TLAB目录下work文件夹中的forest.tif图像文件读出.用到imread,imfinfo 等文件,观察一下图像数据,了解一下数字图像在MATLAB中的处理就是处理一个矩阵。将这个图像显示出来(用imshow)。尝试修改map颜色矩阵的值,再将图像显示出来,观察图像颜色的变化。

2)将MA TLAB目录下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) 对比拉伸:在实际应用中,为了突出图像中感兴趣的研究对象,常常要求局部扩展

拉伸某一范围的灰度值,或对不同范围的灰度值进行不同的拉伸处理,即分段线性拉伸:

其对应的数学表达式为:

2. 直方图均衡化

灰度直方图的横坐标是灰度级,纵坐标是该灰度级出现的频度,它是图像最基本的统计特征。依据定义,在离散形式下, 用r k 代表离散灰度级,用p r (r k )代表p r (r ),并且有下式成立:

n

n r P k

k r =

)( 1,,2,1,010-=≤≤l k r k 式中:n k 为图像中出现r k 级灰度的像素数,n 是图像像素总数,而n k /n 即为频数。 直方图均衡化处理是以累积分布函数变换法为基础的直方图修正法。假定变换函数为

ωωd p r T s r r

)()(0

?==

(a) Lena 图像 (b) Lena 图像的直方图

图1.2 Lena 图像及直方图

当灰度级是离散值时,可用频数近似代替概率值,即

1,,1,010)(-=≤≤=

l k r n

n r p k k k r

式中:l 是灰度级的总数目,p r (r k )是取第k 级灰度值的概率,n k 是图像中出现第k 级灰度的次数,n 是图像中像素总数。

所以积分可以表示为下列累计分布函数(cumulative distribution function, CDF)

1,,1,01

0)

()(0

-=≤≤===∑∑

==l k r r p n

n r T s j k

j j r k

j j k k

四、实验步骤

1. 熟悉MATLAB 语言中对图像数据读取,显示等基本函数 1) 文件读取与信息显示:

load trees;

[X,map]=imread('forest.tif');

subimage(X,map);

I=imread('forest.tif');

imshow(I);

imfinfo('forest.tif');

2)map颜色矩阵的修改

[X,map]=imread('forest.tif');

map1=map+map;

subimage(X,map1);

3)灰度图像的转化

RGB=imread('b747.jpg');

B=rgb2gray(RGB);

2.图像灰度变换处理在图像增强的作用

g1=imadjust(I,[0 1],[1 0]);

g2=imcomplement(g1);

g3=im2uint8(mat2gray(log(1+double(I))));

3.绘制图像灰度直方图的方法,对图像进行均衡化处理

1)图像灰度直方图的显示与灰度调整

imhist(B);

J = imadjust(B,[],[0 1]);

imhist(J);

subimage(J);

2)对B进行直方图均衡化处理,试比较与原图的异同。

I = imread('pout.tif');

[J,T] = histeq(I);

figure,plot((0:255)/255,T);

3)对B进行如图所示的分段线形变换处理,试比较与直方图均衡化处理的异同。x1=0:0.01:0.125;

x2=0.125:0.01:0.75;

x3=0.75:0.01:1;

y1=2*x1;

y2=0.25+0.6*(x2-0.125);

y3=0.625+1.5*(x3-0.75);

x=[x1,x2,x3];

y=[y1,y2,y3];

subplot(2,2,4);

plot(x,y);

五、实验结果分析与讨论

1.熟悉MATLAB语言中对图像数据读取,显示等基本函数

1)图像文件的读出与图像数据的观察

图1.3 真彩色图像与灰度图像显示ans =

Filename:

'F:\MATLAB\R2007a\toolbox\images\imdemos\forest.tif' FileModDate: '04-Dec-2000 13:57:58' FileSize: 124888

Format: 'tif'

FormatVersion: []

Width: 447

Height: 301

BitDepth: 8

ColorType: 'indexed'

FormatSignature: [73 73 42 0]

ByteOrder: 'little-endian'

NewSubFileType: 0

BitsPerSample: 8

Compression: 'PackBits'

PhotometricInterpretation: 'RGB Palette'

StripOffsets: [17x1 double]

SamplesPerPixel: 1

RowsPerStrip: 18

StripByteCounts: [17x1 double]

XResolution: 72

YResolution: 72

ResolutionUnit: 'Inch'

Colormap: [256x3 double]

PlanarConfiguration: 'Chunky'

TileWidth: []

TileLength: []

TileOffsets: []

TileByteCounts: []

Orientation: 1

FillOrder: 1

GrayResponseUnit: 0.0100

MaxSampleValue: 255

MinSampleValue: 0

Thresholding: 1

ImageDescription: 'Carmanah Ancient Forest, British Columbia, Canada' map颜色矩阵修改后图像颜色的变化

图1.4 原图像与map矩阵值增强一倍后的图像

新的颜色矩阵值变成原文件的2倍,图像明显变亮,颜色的R、G、B值增强。

2)图像文件转化为灰度图像

图1.5 真彩色图像与转化成的灰度图像

2.图像灰度变换处理在图像增强的作用

图1.6 灰度变化增强(图像反转、求补、对数变换)

图中对图像文件进行了基本的灰度变换,包括用式s = L – 1 – r 得到的图像反转,对反转图像的求补,以及对数变换的采用。

3.绘制图像灰度直方图的方法,对图像进行均衡化处理

1)图像灰度及灰度直方图的调整

图1.7 灰度范围的调整与直方图显示

在原始图像中,直方图的组成成分集中在高灰度等级(亮)一侧,且图像灰度范围为[0,1],故将灰度值调整到[0,1]间后直方图无明显变化。类似的,将灰度值调整到[0,0.5]时,整个图像变暗,直方图横向压缩1倍。

2)直方图均衡化

图1.8 原图像与灰度直方图均衡化结果

原图像中目标物的灰度主要集中于高亮度部分,而且象素总数较多,所占的灰度等级较少。经过直方图均衡后,目标物的所占的灰度等级得到扩展,对比度加强,使整个图像得到增强。

数字图像均衡化后,其直方图并非完全均匀分布,这是因为图像的象素个数和灰度等级均为离散值,而且均衡化使灰度级并归。因此,均衡化后,其直方图并非完全均匀分布。

3)对B进行如图所示的分段线性变换处理

图1.9 原图像与灰度直方图均衡化结果

图1.10 线性变换函数图

通过在所关心范围内为所有灰度值指定一个较高值,而为其他灰度指定一个较低值,或将所需范围变亮,分段线性变换可提高图像中特定灰度范围的亮度,常用于图像特征值的提取。

这里将原始图像位于[0.125,0.75]间的灰度值调低,放大其余的灰度值,突出显示图像低频域和高频域的部分。

六、参考文献

[美] Rafael C.Gonzalez.数字图像处理(第二版)[M].阮秋琦阮宇智,译.

北京:电子工业出版社,2003.3.

实验二 数字图像的空间域滤波和频域滤波

一、实验目的

1. 掌握图像滤波的基本定义及目的。

2. 理解空间域滤波的基本原理及方法。

3. 掌握进行图像的空域滤波的方法。

4. 掌握傅立叶变换及逆变换的基本原理方法。

5. 理解频域滤波的基本原理及方法。

6. 掌握进行图像的频域滤波的方法。

二、实验内容与要求

1. 平滑空间滤波:

1) 读出eight.tif 这幅图像,给这幅图像分别加入椒盐噪声和高斯噪声后并与前一张图 显示在同一图像窗口中。

2) 对加入噪声图像选用不同的平滑(低通)模板做运算,对比不同模板所形成的效果, 要求在同一窗口中显示。

3) 使用函数imfilter 时,分别采用不同的填充方法(或边界选项,如零填 充、’replicate ’、’symmetric ’、’circular ’)进行低通滤波,显示处理后的图像。

4) 运用for 循环,将加有椒盐噪声的图像进行10次,20次均值滤波,查看其特点,显 示均值处理后的图像(提示:利用fspecial 函数的’average’类型生成均值滤波器)。

5) 对加入椒盐噪声的图像分别采用均值滤波法,和中值滤波法对有噪声的图像做处 理,要求在同一窗口中显示结果。

6) 自己设计平滑空间滤波器,并将其对噪声图像进行处理,显示处理后的图像。 2. 锐化空间滤波

1) 读出blurry_moon.tif 这幅图像,采用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大小的拉普拉斯算子对blurry_moon.tif 进

行锐化滤波,并利用式2

(,)(,)(,)g x y f x y f x y =-?完成图像的锐化增强,观察其有何不同,要求在同一窗口中显示。

4) 采用不同的梯度算子对blurry_moon.tif 进行锐化滤波,并比较其效果。

5) 自己设计锐化空间滤波器,并将其对噪声图像进行处理,显示处理后的图像;

3.傅立叶变换

1)读出woman.tif这幅图像,对其进行快速傅立叶变换,分别显示其幅度图像和相位图像。

仅对相位部分进行傅立叶反变换后查看结果图像。

2)仅对幅度部分进行傅立叶反变换后查看结果图像。

3)将图像的傅立叶变换F置为其共轭后进行反变换,比较新生成图像与原始图像的差异。

4.平滑频域滤波

1)设计理想低通滤波器、巴特沃斯低通滤波器和高斯低通滤波器,截至频率自选,分别给出各种滤波器的透视图。

2)读出test_pattern.tif这幅图像,分别采用理想低通滤波器、巴特沃斯低通滤波器和高斯低通滤波器对其进行滤波(截至频率自选),再做反变换,观察不同的截止频率下采用不同低通滤波器得到的图像与原图像的区别,特别注意振铃效应。(提示:1)在频率域滤波同样要注意到填充问题;2)注意到(-1)x+y;)

5.锐化频域滤波

1)设计理想高通滤波器、巴特沃斯高通滤波器和高斯高通滤波器,截至频率自选,分别给出各种滤波器的透视图。

2)读出test_pattern.tif这幅图像,分别采用理想高通滤波器、巴特沃斯高通滤波器和高斯高通滤波器对其进行滤波(截至频率自选),再做反变换,观察不同的截止频率下采用不同高通滤波器得到的图像与原图像的区别。

三、实验原理与算法分析

1.空间域增强

空间域滤波是在图像空间中借助模板对图像进行领域操作,处理图像每一个像素的取值都是根据模板对输入像素相应领域内的像素值进行计算得到的。空域滤波基本上是让图像在频域空间内某个范围的分量受到抑制,同时保证其他分量不变,从而改变输出图像的频率分布,达到增强图像的目的。

空域滤波一般分为线性滤波和非线性滤波两类。线性滤波器的设计常基于对傅立叶变换的分析,非线性空域滤波器则一般直接对领域进行操作。各种空域滤波器根据功能主要分为平滑滤波器和锐化滤波器。平滑可用低通来实现,平滑的目的可分为两类:一类是模糊,目的是在提取较大的目标前去除太小的细节或将目标内的小肩端连接起来;另一类是消除噪声。锐化可用高通滤波来实现,锐化的目的是为了增强被模糊的细节。结合这两种分类方法,可将空间滤波增强分为四类:

线性平滑滤波器(低通)

非线性平滑滤波器(低通)

线性锐化滤波器(高通)

非线性锐化滤波器(高通)

空间滤波器都是基于模板卷积,其主要工作步骤是:

1)将模板在图中移动,并将模板中心与图中某个像素位置重合;

2)将模板上的系数与模板下对应的像素相乘;

3)将所有乘积相加;

4)将和(模板的输出响应)赋给图中对应模板中心位置的像素。

2.平滑滤波器

1)线性平滑滤波器

线性低通平滑滤波器也称为均值滤波器,这种滤波器的所有系数都是正数,对3×3

的模板来说,最简单的是取所有系数为1,为了保持输出图像任然在原来图像的灰度值范围内,模板与象素邻域的乘积都要除以9。

MATLAB 提供了fspecial 函数生成滤波时所用的模板,并提供filter2 函数用指定的滤波器模板对图像进行运算。函数fspecial 的语法格式为:

h=fspecial(type);

h=fspecial(type,parameters);

其中参数type 指定滤波器的种类,parameters 是与滤波器种类有关的具体参数。

表2.1 MATLAB中预定义的滤波器种类

MATLAB 提供了一个函数imnoise 来给图像增添噪声,其语法格式为:

J=imnoise(I,type);

J=imnoise(I,type,parameters);

参数type 指定噪声的种类,parameters 是与噪声种类有关的具体参数。参数的种类见表2.2。

表2.2 噪声种类及参数说明

2)非线性平滑滤波器

中值滤波器是一种常用的非线性平滑滤波器,其滤波原理与均值滤波器方法类似,但计算的非加权求和,而是把领域中的图像的象素按灰度级进行排序,然后选择改组的中间值作为输出象素值。

MATLAB 提供了medfilt2 函数来实现中值滤波,其语法格式为:

B=medfilt2(A,[m n]);

B=medfilt2(A);

其中,A 是原图象,B 是中值滤波后输出的图像。[m n]指定滤波模板的大小,默认模板为3×3。

3.锐化滤波器

图像平滑往往使图像中的边界、轮廓变得模糊,为了减少这类不利效果的影响,需要利用图像锐化技术,使图像的边缘变得清晰。

1)线性锐化滤波器

线性高通滤波器是最常用的线性锐化滤波器。这种滤波器的中心系数都是正的,而周围的系数都是负的,所有的系数之和为0。

对3×3 的模板来说,典型的系数取值为:

[-1 -1 -1;

-1 8 -1;

-1 -1 -1]

事实上这是拉普拉斯算子。语句h=-fspecial(‘laplacian’,0.5)得到的拉普拉斯算子为:

h =-0.3333 -0.3333 -0.3333

-0.3333 2.6667 -0.3333

-0.3333 -0.3333 -0.3333

2)非线性锐化滤波

邻域平均可以模糊图像,因为平均对应积分,所以利用微分可以锐化图像。图像处理中最常用的微分方法是利用梯度。常用的空域非线性锐化滤波微分算子有sobel 算子、prewitt 算子、log 算子等。

4.频域增强

频域增强是利用图像变换方法将原来的图像空间中的图像以某种形式转换到其他空间中,然后利用该空间的特有性质方便地进行图像处理,最后再转换回原来的图像空间中,从而得到处理后的图像。

频域增强的主要步骤是:

选择变换方法,将输入图像变换到频域空间。

在频域空间中,根据处理目的设计一个转移函数,并进行处理。

将所得结果用反变换得到增强的图像。

常用的频域增强方法有低通滤波和高通滤波。

5.低通滤波

图像的能量大部分集中在幅度谱的低频和中频部分,而图像的边缘和噪声对应于高频部分。因此能降低高频成分幅度的滤波器就能减弱噪声的影响。由卷积定理,在频域实现低通滤波的数学表达式:

G(u,v) =H(u,v)F(u,v)

1)理想低通滤波器(ILPF)

2)巴特沃斯低通滤波器(BLPF)

3)指数型低通滤波器(ELPF)

6.高通滤波

由于图像中的细节部分与其高频分量相对应,所以高通滤波可以对图像进行锐化处理。高通滤波与低通滤波相反,它是高频分量顺利通过,使低频分量受到削弱。高通滤波器和低通滤波器相似,其转移函数分别为:

1)理想高通滤波器(IHPF)

2)巴特沃斯高通滤波器(BLPF)

3)指数型高通滤波器(ELPF)

图像经过高通滤波处理后,会丢失许多低频信息,所以图像的平滑区基本上会消失。所以,可以采用高频加强滤波来弥补。高频加强滤波就是在设计滤波传递函数时,加上一

个大于0小于1的常数c,即:

H′(u,v) =H(u,v)+c

四、实验步骤

1.平滑空间滤波:

1)椒盐噪声和高斯噪声的加入

I=imread('eight.tif');

imshow(I);

J = imnoise(I,'salt & pepper',0.05); %noise density=0.05

K= imnoise(I,'gaussian',0.01,0.01);

2)不同的平滑(低通)模板的处理

H = fspecial('sobel');

Sobel = imfilter(I,H,'replicate');

H = fspecial('laplacian',0.4);

lap = imfilter(I,H,'replicate');

H = fspecial('gaussian',[3 3],0.5);

gaussian = imfilter(I,H,'replicate');

3)不同填充方法的滤波

originalRGB = imread('peppers.png');

h = fspecial('motion', 50, 45); %motion blurred

filteredRGB = imfilter(originalRGB, h); boundaryReplicateRGB = imfilter(originalRGB, h, 'replicate'); boundary0RGB = imfilter(originalRGB, h, 'x');

boundary0RGB = imfilter(originalRGB, h, 0); boundarysymmetricRGB = imfilter(originalRGB, h, 'symmetric'); boundarycircularRGB = imfilter(originalRGB, h, 'circular');

4)多次均值滤波

J = imnoise(I,'salt & pepper',0.05);

h=fspecial('average'); %Averaging Filtering

J1=imfilter(J,h);

for i=1:10

J1=imfilter(J,h);

end

for i=1:20

J2=imfilter(J,h);

5)均值、中值滤波

h=fspecial('average'); %Averaging Filtering

J1=imfilter(J,h);

J2=medfilt2(J); %Median Filtering

6)自行设计平滑空间滤波器

domain=[0 0 8 0 0;

0 0 8 0 0;

8 8 8 8 8;

0 0 8 0 0;

0 0 8 0 0];

K1= ordfilt2(J,5,domain);

2.平滑空间滤波:

1)3×3的拉普拉斯算子滤波

I=imread('blurry_moon.tif');

T=double(I);

subplot(1,2,1),imshow(T,[]);title('Original Image'); w =[1,1,1;

1,-8,1;

1,1,1];

K=conv2(T,w,'same');

2)奇数尺寸拉普拉斯算子随机产生函数

function w = genlaplacian(n)

%Computes the Laplacian operator

w = ones(n);

x = ceil(n/2);

w(x, x) = -1 * (n * n - 1);

3)不同尺寸拉普拉斯算子滤波以及图像增强

w1 = genlaplacian(5);

I=imread('blurry_moon.tif');

T=double(I);

K=conv2(T,w1,'same');

J=T-K;

4)不同尺寸梯度算子的锐化滤波

[I,map]=imread('blurry_moon.tif');

I=double(I);

[Gx,Gy]=gradient(I); % gradient calculation G=sqrt(Gx.*Gx+Gy.*Gy); % matrix

J1=G; % gradient1 imshow(J1,map);

J2=I; % gradient2

K=find(G>=7);

J2(K)=G(K);

imshow(J2,map);

J3=I; % gradient3

K=find(G>=7);

J3(K)=255;

imshow(J3,map);

J4=I; % gradient4

K=find(G<=7);

J4(K)=255;

imshow(J4,map);

J5=I; % gradient5

K=find(G<=7);

J5(K)=0;

Q=find(G>=7);

J5(Q)=255;

imshow(J5,map);

5)自行设计锐化空间滤波器

domain=[8 8 0 8 8;

8 8 0 8 8;

0 0 0 0 0;

8 8 0 8 8;

8 8 0 8 8];

K1= ordfilt2(J,5,domain);

3.傅立叶变换

1)图像的快速傅立叶变换,分别显示其幅度图像和相位图像。

F=imread('woman.tif');

F1=fft2(F);

F2=log(1+abs(F1)); %amplitude spectrum

F3=fftshift(F1);

imshow(log(1+abs(F3)),[]);

F4=angle(F1); %phase spectrum

2)相位部分进行傅立叶反变换。

F1=fft2(F);

i=sqrt(-1);

f2=ifft2(exp(i*angle(F1)));

imshow(real(f2),[]);

3)幅度部分进行傅立叶反变换。

f1=ifft2(abs(F1));

imshow(log(1+abs(f1)),[]);

4)将图像的傅立叶变换F置为其共轭后进行反变换

F1=fft2(F);

F2=log(1+abs(F1)); %amplitude spectrum

F3=fftshift(F1);

F4=angle(F1); %phase spectrum

F5=-F4

F6= double(F3*exp(F4)); %the complex conjugate of the fourier transform F7=ifft2(F6); %inverse fourier transform

imshow(real(F7),[]);

4.平滑频域滤波

理想低通滤波器、巴特沃斯低通滤波器和高斯低通滤波器的设计与滤波

理想低通滤波器

I=imread('test_pattern.tif');

f=double(I); % chage into double as MATLAB doesn’t suppor calculation

% of image in unsigned int type

g=fft2(f); % fourier transform

g=fftshift(g); % zero-frequency area centralized

[M,N]=size(g);

d0=100; %cutoff frequency

m=fix(M/2); n=fix(N/2);

for i=1:M

for j=1:N

d=sqrt((i-m)^2+(j-n)^2);

if(d<=d0)

h=1;

else h=0;

end

result(i,j)=h*g(i,j);

end

end

result=ifftshift(result);

J1=ifft2(result);

J2=uint8(real(J1));

imshow(J2)

巴特沃斯低通滤波器(二阶)

I=imread('test_pattern.tif');

f=double(I);

g=fft2(f);

g=fftshift(g);

[M,N]=size(g);

nn=2; % 2-grade Butterworth lowpss filter

d0=100;

m=fix(M/2); n=fix(N/2);

for i=1:M

for j=1:N

d=sqrt((i-m)^2+(j-n)^2);

h=1/(1+0.414*(d/d0)^(2*nn)); % filter transform function

%h=1./(1+(d./d0).^(2*n))

%h=exp(-(d.^2)./(2*(d0^2)));

result(i,j)=h*g(i,j);

end

end

result=ifftshift(result);

J1=ifft2(result);

J2=uint8(real(J1));

imshow(J2);

高斯低通滤波

I=imread('test_pattern.tif');

f=double(I);

g=fft2(f);

g=fftshift(g);

[M,N]=size(g);

d0=100;

m=fix(M/2); n=fix(N/2);

for i=1:M

for j=1:N

d=sqrt((i-m)^2+(j-n)^2);

h=exp(-(d.^2)./(2*(d0^2))); % gaussian filter transform

result(i,j)=h*g(i,j);

end

end

result=ifftshift(result);

J1=ifft2(result);

J2=uint8(real(J1));

5.锐化频域滤波

理想高通滤波器、巴特沃斯高通滤波器和高斯高通滤波器的设计与滤波理想高通滤波器

I=imread('test_pattern.tif');

f=double(I);

g=fft2(f);

g=fftshift(g);

[M,N]=size(g);

d0=80; %d0=15,25,80

m=fix(M/2); n=fix(N/2);

for i=1:M

for j=1:N

d=sqrt((i-m)^2+(j-n)^2);

if(d>=d0)

h=1;

else h=0;

end

result(i,j)=h*g(i,j);

end

end

result=ifftshift(result);

J1=ifft2(result);

J2=uint8(real(J1));

巴特沃斯高通滤波器

I=imread('test_pattern.tif');

f=double(I);

g=fft2(f);

g=fftshift(g);

[M,N]=size(g);

nn=2; % 2-grade nutterworth highpass filter

d0=80;

m=fix(M/2);

n=fix(N/2);

for i=1:M

for j=1:N

d=sqrt((i-m)^2+(j-n)^2);

if (d==0)

h=0;

else

h=1/(1+0.414*(d0/d)^(2*nn));%transform fuction calculation end

result(i,j)=h*g(i,j);

end

end

result=ifftshift(result);

J1=ifft2(result);

J2=uint8(real(J1));

高斯高通滤波器

I=imread('test_pattern.tif');

f=double(I);

g=fft2(f);

g=fftshift(g);

[M,N]=size(g);

d0=80;

m=fix(M/2); n=fix(N/2);

for i=1:M

for j=1:N

d=sqrt((i-m)^2+(j-n)^2);

h=1-exp(-(d.^2)./(2*(d0^2))); % gaussian filter transform

result(i,j)=h*g(i,j);

end

end

result=ifftshift(result);

J1=ifft2(result);

J2=uint8(real(J1));

五、实验结果分析与讨论

1.平滑空间滤波:

1)读出eight.tif这幅图像,给这幅图像分别加入椒盐噪声和高斯噪声后并与前一张图

显示在同一图像窗口中。

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

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

数字图像处理 实验指导书 学院:通信与电子工程学院 专业:电子信息工程 班级: 学号: 姓名: 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) 对比拉伸:在实际应用中,为了突出图像中感兴趣的研究对象,常常要求 局部扩展拉伸某一范围的灰度值,或对不同范围的灰度值进行不同的拉伸处理,即分段线性拉伸: 其对应的数学表达式为:

数字图像处理实验报告

实验一灰度图像直方图统计 一、实验目的 掌握灰度图像直方图的概念和计算方法,了解直方图的作用和用途。提高学生编程能力,巩固所学知识。 二、实验内容和要求 (1)用Photoshop显示、了解图像平均明暗度和对比度等信息; (2)用MatLab读取和显示一幅灰度图像; (3)用MatLab编写直方图统计的程序。 三、实验步骤 1. 使用Photoshop显示直方图: 1)点击文件→打开,打开一幅图像; 2)对图像做增强处理,例如选择图像→调整→自动对比度对图像进行灰度拉伸,观察图像进行对比度增强前后的视觉变化。 3)利用统计灰度图像直方图的程序分别针对灰度拉伸前后的灰度图像绘制其灰度直方图,观察其前后的直方图变化。 2.用MatLab读取和显示一幅灰度图像; 3. 绘制图像的灰度直方图; function Display_Histogram()

Input=imread('timg.jpg'); figure(100); imshow(uint8(Input)); title('原始图像'); Input_Image=rgb2gray(Input); figure(200); imshow(uint8(Input_Image)); title('灰度图像'); sum=0; His_Image=zeros(1,256); [m,n]=size(Input_Image); for k=0:255 for I=1:m for j=1:n if Input_Image(I,j)==k His_Image(k+1)=His_Image(k+1)+1; end end end end figure(300); plot(His_Image); title('图像的灰度直方图'); 4.显示图像的灰度直方图。

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

《数字图像处理》实验指导书 编写: 罗建军 海南大学三亚学院 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

南昌大学-数字图像处理实验报告1-8(全)

NANCHANG UNIVERSITY 数字图象处理实验报告 专业:通信工程 班级:121班 学号:6100212024 学生姓名:徐万然 2015年4月20日

目录 实验1:图像信号的数字化 实验2:图像灰度级修正 实验3:图像的平滑滤波 实验4:图像的锐化处理 实验5:图像的伪彩色处理 实验6:图像的几何变化 实验7:图像的复原处理 实验8:图像的正交变换

实验一:图像信号的数字化 一、实验目的 通过本实验了解图像的数字化参数取样频率(象素个数)、量化层数与图像质量的关系。 二、实验内容 编写并调试图像数字化程序,要求参数k,n 可调。其中k为亚抽样比例;n 为量化比特数;选择任意图像进行处理,在显示器上观察各种数字化参数组合下的图像效果。 三、实验程序 f=imread('Water lilies.jpg'); %读入一张图片 f1=rgb2gray(f); %将rgb值转换为灰度图 subplot(3,3,1),imshow(f),title('灰度图'); %显示这幅图像 f2=im2bw(f1); %将图像转换为二值图 subplot(3,3,2),imshow(f2),title('二值图'); %显示这幅图像 f3=~f2; %对图像进行取反操作 subplot(3,3,3),imshow(f3),title('取反图'); %显示这幅图像 f4=imnoise(f,'gaussian');% subplot(3,3,4),imshow(f4),title('加高斯噪声图'); %对象进行预操作,加入高斯噪声 h=ones(5,5)/25; %设计一个5*5的均值滤波器 f5=imfilter(f4,h); %对图像进行均值滤波 subplot(3,3,5),imshow(f5),title('平滑滤波图'); %显示这幅图像 f6=imadjust(f,[0,1],[0,1]); %对图像灰度值进行归一化处理 subplot(3,3,6),imshow(f6),title('灰度级修正图1'); %显示这幅图像 f7=imadjust(f,[0,0.8],[0,1]); %降低输入的灰度值 subplot(3,3,7),imshow(f7),title('灰度级修正图2'); %显示这幅图像

数字图像处理程序

数字图像处理程序

数字图像处理实验 图像处理实验(一)直方图 灰度变换是图像增强的一种重要手段,使图像对比度扩展,图像更加清晰,特 征更加明显。 灰度级的直方图给出了一幅图像概貌的描述,通过修改灰度直方图来得到图像 增强。 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彩色空间

数字图像处理实验报告

数字图像处理实验报告

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

数字图像处理实验一

数字图像处理—实验一 一.实验内容: 图像灰度变换 二.实验目的: 学会用Matlab软件对图像灰度进行变换;感受各种不同的灰度变换方法对最终图像效果的影响。 三.实验步骤: 1.获取实验用图像:rice.jpg. 使用imread函数将图像读入Matlab。 程序: clc;clear; figure; subplot(4,4,1); i = imread('rice.png'); i = im2double(i); imshow(i);title('1'); 2.产生灰度变换函数T1,使得: 0.3r r < 0.35 s = 0.105 + 2.6333(r – 0.35) 0.35 ≤r ≤0.65

1 + 0.3(r – 1) r > 0.65 用T1对原图像rice.jpg进行处理,使用imwrite函数保存处理后的新图像。程序: subplot(4,4,2); r=[0:0.001:1]; s=[r<0.35].*r*0.3+[r<=0.65].*[r>=0.35].*(0.105+2.6333*(r-0.35))+[r>0.65].*(1 +0.3*(r-1)); plot(r,s);title('2p'); subplot(4,4,3); T1=[i<0.35].*i*0.3+[i<=0.65].*[i>=0.35].*(0.105+2.6333*(i-0.35))+[i>0.65].*( 1+0.3*(i-1)); imshow(T1);title('2i'); imwrite(T1,'rice_T1.jpg','jpg');

3.产生灰度变换函数T2,使得: 用T2对原图像rice.jpg进行处理,使用imwrite保存处理后的新图像。 %3 subplot(4,4,4); r = [0:0.001:1];

数字图像处理实验

学院计算机与通信工程学院专业生物医学工程专业 班级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');

数字图像处理实验报告

数字图像处理实验 报告 学生姓名:学号: 专业年级: 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()同样可以通过除以一个常数来改变原始图像的亮度,可用来改变图像的灰度级,其典型运用是比值图像处理。 加法运算的一个重要应用是对同一场景的多幅图像求平均值 减法运算常用于检测变化及运动的物体,图像相减运算又称为图像差分运算,差分运算还可以用于消除图像背景,用于混合图像的分离。

数字图像处理实验报告

目录 实验一:数字图像的基本处理操作 (4) :实验目的 (4) :实验任务和要求 (4) :实验步骤和结果 (5) :结果分析 (8) 实验二:图像的灰度变换和直方图变换 (9) :实验目的 (9) :实验任务和要求 (9) :实验步骤和结果 (9) :结果分析 (13) 实验三:图像的平滑处理 (14) :实验目的 (14) :实验任务和要求 (14) :实验步骤和结果 (14) :结果分析 (18) 实验四:图像的锐化处理 (19) :实验目的 (19) :实验任务和要求 (19) :实验步骤和结果 (19) :结果分析 (21)

实验一:数字图像的基本处理操作 :实验目的 1、熟悉并掌握MATLAB、PHOTOSHOP等工具的使用; 2、实现图像的读取、显示、代数运算和简单变换。 3、熟悉及掌握图像的傅里叶变换原理及性质,实现图像的傅里叶变换。:实验任务和要求 1.读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分 成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题。 2.对两幅不同图像执行加、减、乘、除操作,在同一个窗口内分成五个子窗口来分 别显示,注上文字标题。 3.对一幅图像进行平移,显示原始图像与处理后图像,分别对其进行傅里叶变换, 显示变换后结果,分析原图的傅里叶谱与平移后傅里叶频谱的对应关系。 4.对一幅图像进行旋转,显示原始图像与处理后图像,分别对其进行傅里 叶变换,显示变换后结果,分析原图的傅里叶谱与旋转后傅里叶频谱的 对应关系。 :实验步骤和结果 1.对实验任务1的实现代码如下: a=imread('d:\'); i=rgb2gray(a); I=im2bw(a,; subplot(1,3,1);imshow(a);title('原图像'); subplot(1,3,2);imshow(i);title('灰度图像'); subplot(1,3,3);imshow(I);title('二值图像'); subplot(1,3,1);imshow(a);title('原图像'); 结果如图所示:

数字图像处理实验程序MATLAB.

实验一 内容(一) (1)彩色图像变灰度图像 A=imread('1.jpg'); B=rgb2gray(A); figure subplot(1,2,1), imshow(A) title('原图') subplot(1,2,2), imshow(B) title('原图灰度图像') (2)彩色图像变索引图像 A=imread('1.jpg'); figure subplot(1,2,1), imshow(A) title('原图') [X,map]=rgb2ind(A,128); subplot(1,2,2), imshow(X,map) title('原图索引图像') (3)彩色图像变二值图像 A=imread('1.jpg'); figure subplot(1,2,1), imshow(A) title('原图') C=im2bw(A,0.2); subplot(1,2,2), imshow(C) title('原图二值图像') (4)灰度图像变索引图像(一) A=imread('1.jpg'); figure B=rgb2gray(A); subplot(1,2,1), imshow(B) title('灰度图像') C=grayslice(B,39); subplot(1,2,2), imshow(C) title('灰度变索引图像')

(5)灰度图像变索引图像(二) A=imread('1.jpg'); figure B=rgb2gray(A); subplot(1,2,1), imshow(B) title('灰度图像') [X,map]=gray2ind(B,63); subplot(1,2,2), imshow(X,map) title('灰度变索引图像') (6)灰度图像变彩色图像 A=imread('1.jpg'); figure B=rgb2gray(A); subplot(1,2,1), imshow(B) title('灰度图像') C=gray2rgb(B,map); subplot(1,2,2), imshow(C) title('灰度变彩色图像') 内容(二) (1)灰度平均值 A=imread('1.jpg'); figure B=rgb2gray(A); subplot(1,2,1), imshow(B) title('灰度图像') B=double(B); [m,n]=size(B); sumg=0.0; for i=1:m; for j=1:n; sumg=sumg+B(i,j); end end avg=sumg/(m*n) % 均值 maxg=max(max(B)) % 区域最大灰度ming=min(min(B)) % 区域最小灰度 (2)彩色平均值

数字图像处理实验2

实验报告 课程名称数字图像处理基础 实验项目MATLAB图像的空间变换及相邻区域和块的处理 实验仪器 PC 系别____信息与通信工程学院__ 专业____ _电子信息工程_____ 班级/学号_ _ 学生姓名________ ______ __ _ 实验日期______2016.5.8______ __ 成绩_______________________ 指导教师____ _ ____ __

实验二图像的空间变换及相邻区域和块的处理 一、实验目的 1.掌握MATLAB的基本应用方法。 2.熟悉MATLAB的4个内置函数:clc, clear, close ,cputime 3.掌握MATLAB空间变换--图像插值、缩放、旋转。 4.掌握MATLAB相邻区和块的处理-滑动窗和图像块操作。 二、实验的硬件、软件平台 1、硬件:计算机; 2、软件:操作系统——Win7; 应用软件——MATLAB R2010b。

三、实验编程实现的MATLAB图像处理代码及其功能注释 1、编程实现放大和缩小一幅图像(imresize)

I = imread('text.png'); J = imresize(I, 0.5); K=imresize(I,1.5); figure, imshow(I), figure, imshow(J), figure, imshow(K) 2、编程实现旋转一幅图像(imrotate)

I = imread('pears.png'); I = mat2gray(I); J = imrotate(I,-10,'bilinear','crop'); figure, imshow(I), figure, imshow(J)

数字图像处理实验一

实验一图像变换 一.实验目的 1.了解图像变换的意义和手段 2.熟悉离散傅里叶变换、离散余弦变换、离散小波变换的基本性质; 3.熟练掌握图像变换的方法及应用; 4.通过实验了解二维频谱的分布特点; 5.通过本实验掌握利用MATLAB编程实现数字图像的变换。 二.实验原理 1.应用各种离散变换进行图像处理 2.离散余弦变换(DCT)的定义 3. 离散小波变换定义 三.实验步骤 1.启动MATLAB程序;程序组中“work”文件夹中应有待处理的图像文件; 2.利用MatLab工具箱中的函数编制FFT频谱显示的函数; 3 .调入、显示“实验一”获得的图像; 4.对图像做FFT并利用自编的函数显示其频谱; 5.讨论不同的图像内容与FFT频谱之间的对应关系。 6.记录和整理实验报告。 四.实验程序与内容 clc; figure(1); load imdemos saturn2; title('原图像'); imshow(saturn2); figure(2); s=fftshift(fft2(saturn2)); imshow(log(abs(s)),[]); title('原图像傅立叶频谱'); figure(1); A=imread('liubh.jpg');

B=rgb2gray(A); imshow(B); title('原图像'); s=fftshift(fft2(B)); figure(2); imshow(log(abs(s)),[]); title('彩色图像的傅立叶频谱'); RGB=imread('liubh.jpg'); figure(1);

相关文档
相关文档 最新文档