文档库 最新最全的文档下载
当前位置:文档库 › 数字图像处理实验三 图像滤波实验(模板运算)

数字图像处理实验三 图像滤波实验(模板运算)

数字图像处理实验三  图像滤波实验(模板运算)
数字图像处理实验三  图像滤波实验(模板运算)

实验三图像滤波实验(模板运算)

一.实验目的:

模板运算是空间域图象增强的方法,也叫模板卷积。

(1)平滑:平滑的目的是模糊和消除噪声。平滑是用低通滤波器来完成,在空域中全是正值。

(2)锐化:锐化的目的是增强被模糊的细节。锐化是用高通滤波器来完成,在空域中,接近原点处为正,在远离原点处为负。

二.实验内容:

(1)利用线性空间滤波(均值滤波)对一幅图象进行平滑,验证模板尺寸和滤波参数对图象的模糊效果的影响。

(2)利用非线性空间滤波器(中值滤波)对一幅噪声图象(椒盐噪声)进行平滑去噪,同时检验两种滤波模板(分别使用一个5×5的线性邻域平均模板和一个非线性模板:3×3中值滤波器)对噪声的滤波效果。

(3)利用线性空间滤波器,对灰度图象分别利用二阶标准Laplacian算子和对角线Laplacian算子对其进行锐化操作,增强图像边缘,验证检测效果。

三.实验原理:1.用31×31均值滤波模板,并分别采用参数boundary_options

默认值和‘replicate’对图像test_pattern进行平滑处理;用3×3,5×5,7×7均值滤波模板对图像lena平滑处理,观察不同参数、不同模板尺寸对滤波效果的影响。

1.线性空间滤波

函数imfilter来实现线性空间滤波,语法为:

g = imfilter(f, w, filtering_mode, boundary_options, size_options)

其中,f是输入图像,w为滤波模板,g为滤波结果,filtering_mode用于指定在滤波过程中是使用相关运算(‘corr’)还是卷积运算(‘conv’),相关就是按模板在图像上逐步移动运算的过程,卷积则是先将模板旋转180度,再在图像上逐步移动的过程,显然,若模板中心对称,则相关和卷积运算是相同操作,默认为相关运算;boundary_options用于处理边界充零问题,默认为赋零,若该参数

为’replicate’表示输出图像边界通过复制原图像边界的值来扩展;size_options可以是’full’或’same’,默认为’same’,表示输出图像与输入图像的大小相同。

均值滤波:

>>w = ones(31)/(31*31) %建立一个31×31大小的均值滤波器

>>g1 = imfilter(f, w) %相关运算,默认边界充零

>>imshow(g1)

>>g2 = imfilter(f, w, ‘replicate’)

>>fugure, imshow(g2)

2.非线性滤波器

数字图像处理中最著名的统计排序滤波器是中值滤波器,MATLAB 工具箱提供了二维中值滤波函数medfilt2,语法为:

g = medfilt2(f, [m n], padopt)

矩阵[m n]定义了一个大小为m ×n 的邻域,中值就在该邻域上计算;而参数padopt 指定了三个可能的边界填充选项:’zeros ’(默认值,赋零),’symmetric ’按照镜像反射方式对称地沿延其边界扩展,’indexed ’,若f 是double 类图像,则以1来填充图像,否则以0来填充图像。

该函数的默认形式为:

g = medfilt2(f)

它使用一个大小为3×3的邻域来计算中值,并用0来填充图像的边界。 >> %对图像f 加入椒盐噪声,其中黑点和白%点出现的概率为0.2

>>imshow(fn )

>>gm = medfilt 2(f) %默认中值滤波

>>figure, imshow(gm )

>>gms = medfilt2(fn, ‘symmetric ’)

>> figure, imshow(gms )

3.线性空间滤波器

MATLAB 工具箱支持一些预定义的二维线性空间滤波器,这些空间滤波器可通过函数fspecial 实现。生成滤波模板的函数fspecial 的语法为:

w = fspecial(‘type ’, parameters)

其中,’type ’表示滤波器类型,parameters 进一步定义了指定的滤波器。

fspecial(‘laplacian ’, alpha) 一个大小为3×3的拉普拉斯滤波器,其形状由alpha 指定,alpha 是范围[0, 1]的数。alpha 默认为0.5。实现了一个常见的拉普拉斯算子模板:11111411111111α

ααα

ααααα

ααα

ααααα

-+++---+++-+++,若alpha = 0,则为标准拉普拉斯模板010141010-,另一个考虑对角线元素的拉普拉斯模板是111

181111

-。

>>w 4 = fspecial(‘laplacian ’, 0) %建立一个标准拉普拉斯模板

>>w 8 = [1 1 1; 1 -8 1; 1 1 1] %手工指定滤波器,建立一个对角线拉普拉斯%

模板

>>g 4 = imfilter(f, w4, ‘replicate ’)

>>figure, imshow (g4)

>>g4g = f – g4

>>figure, imshow(g4g)

>>g 8 = imfilter(f, w8, ‘replicate ’)

>>figure, imshow (g8)

>>g8g = f – g8

>>figure, imshow(g8g)

四.实验报告

1.用31×31均值滤波模板,并分别采用参数boundary_options默认值和‘replicate’对图像test_pattern进行平滑处理;用3×3,5×5,7×7均值滤波模板对图像lena 平滑处理,观察不同参数、不同模板尺寸对滤波效果的影响。

2.用3×3,5×5,7×7邻域大小的中值滤波对椒盐噪声污染的图像board进行去噪平滑处理。观察不同邻域大小对中值滤波效果的影响。

3.分别用标准拉普拉斯模板和对角线拉普拉斯模板对图像moon进行边缘增强,并与原图像叠加运算,观察并对比增强后的效果。

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

数字图像处理实验三中值滤波和均值滤波实验报告

数字图像处理实验三中值滤波和均值滤波实验报告

数字图像处理实验三 均值滤波、中值滤波的计算机实现12281166 崔雪莹计科1202班 一、实验目的: 1)熟悉均值滤波、中值滤波处理的理论基础; 2)掌握均值滤波、中值滤波的计算机实现方法; 3)学习VC++ 6。0 的编程方法; 4)验证均值滤波、中值滤波处理理论; 5)观察均值滤波、中值滤波处理的结果。 二、实验的软、硬件平台: 硬件:微型图像处理系统,包括:主机, PC机;摄像机; 软件:操作系统:WINDOWS2000或WINDOWSXP应用软件:VC++ 6.0 三、实验内容: 1)握高级语言编程技术; 2)编制均值滤波、中值滤波处理程序的方法; 3)编译并生成可执行文件; 4)考察处理结果。 四、实验要求: 1)学习VC++确6。0 编程的步骤及流程; 2)编写均值滤波、中值滤波的程序;

3)编译并改错; 4)把该程序嵌入试验二给出的界面中(作适当修改); 5)提交程序及文档; 6)写出本次实验的体会。 五、实验结果截图 实验均值滤波采用的是3X3的方块,取周围的像素点取得其均值代替原像素点。边缘像素的处理方法是复制边缘的像素点,增加一个边框,计算里面的像素值得均值滤波。

六、实验体会 本次实验在前一次的实验基础上增加均值滤波和中值滤波,对于椒盐噪声的处理,发现中值滤波的效果更为好一点,而均值滤波是的整个图像变得模糊了一点,效果差异较大。本次实验更加增加了对数字图像处理的了解与学习。 七、实验程序代码注释及分析 // HistDemoADlg.h : 头文件 // #include "ImageWnd.h" #pragma once // CHistDemoADlg 对话框 class CHistDemoADlg : public CDialogEx { // 构造

数字图像处理实验报告

数字图像处理实验报告 实验一数字图像基本操作及灰度调整 一、实验目的 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、计算图像的梯度,梯度值和梯度角。 I=imread('C:\Users\Administrator\Desktop\cat.jpg'); B=rgb2gray(I); C=double(B); e=1e-6;%10^-6 [dx,dy]=gradient(C);%计算梯度 G=sqrt(dx.*dx+dy.*dy);%梯度幅值 figure,imshow(uint8(G)),title('梯度图像'); pha=atan(dy./(dx+e)) figure,imshow(pha,[]) 图 1

图 2 梯度角图 2、计算图像边缘检测,用滤波器方式实现各种算子。 (1)Roberts算子 clear; I=imread('C:\Users\admin\Desktop\mao.jpg'); B=rgb2gray(I); [m,n]=size(B); nB=B; robertsnum=0;%经roberts算子计算得到的每一个像素的值robertsthreshold=0.6;%设定阈值 for j=1:m-1;%进行边界提取 for k=1:n-1 robertsnum=abs(B(j,k)-B(j+1,k+1))+abs(B(j+1,k)-B(j,k+1)); if(robertsnum>robertsthreshold) nB(j,k)=255; else nB(j,k)=0; end end end subplot(1,2,1);imshow(B);title('原图'); subplot(1,2,2);imshow(nB,[]);title('Robert算子处理后的图像');

数字图像处理实验 实验二

实验二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.了解二值形态学的基本运算 2.掌握基本形态学运算的实现 3.了解形态操作的应用 二.实验基本原理 腐蚀和膨胀是数学形态学最基本的变换,数学形态学的应用几乎覆盖了图像处理的所有领域,给出利用数学形态学对二值图像处理的一些运算。 膨胀就是把连接成分的边界扩大一层的处理。而收缩则是把连接成分的边界点去掉从而缩小一层的处理。 二值形态学 I(x,y), T(i,j)为 0/1图像Θ 腐蚀:[]),(&),(),)((),(0,j i T j y i x I AND y x T I y x E m j i ++=Θ== 膨胀:[]),(&),(),)((),(0 ,j i T j y i x I OR y x T I y x D m j i ++=⊕== 灰度形态学T(i,j)可取10以外的值 腐蚀: []),(),(min ),)((),(1 ,0j i T j y i x I y x T I y x E m j i -++=Θ=-≤≤ 膨胀: []),(),(max ),)((),(1 ,0j i T j y i x I y x T I y x D m j i +++=⊕=-≤≤ 1.腐蚀Erosion: {}x B x B X x ?=Θ: 1B 删两边 2B 删右上 图5-1 剥去一层(皮) 2.膨胀Dilation: {}X B x B X x ↑⊕:= 1B 补两边 2B 补左下 图5-2 添上一层(漆) 3.开运算open :

B B X ⊕Θ=)(X B 4.闭close :∨ Θ⊕=B B X X B )( 5.HMT(Hit-Miss Transform:击中——击不中变换) 条件严格的模板匹配 ),(21T T T =模板由两部分组成。1T :物体,2T :背景。 {} C x x i X T X T X T X ??=?21, 图5-3 击不中变换示意图 性质: (1)φ=2T 时,1T X T X Θ=? (2))()()(21T X T X T X C Θ?Θ=? C T X T X )()(21Θ?Θ= )/()(21T X T X ΘΘ= 6.细化/粗化 (1)细化(Thin ) C T X X T X XoT )(/??=?= 去掉满足匹配条件的点。 图5-4 细化示意图 系统细化{}n B oB XoB T Xo ))(((21=, i B 是1-i B 旋转的结果(90?,180?,270?)共8种情况 适于细化的结构元素 1111000d d I = d d d L 10110 0= (2)粗化(Thick ) )(T X X T X ??=? 用(){}0,01=T (){}0,12=T 时,X X X T X =?=? X 21 1 1 2 3 T ? XoT X ? X X ?T X ΘT T ⊕

数字图像处理实验

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

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

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)

数字图像处理实验三

数字图像处理实验报告 学院:电子信息与自动化 专业:电子信息工程 班级:120224 实验人:张文君(12022419) 同组人:姚朱晨(12022417)

实验三: 数字图像的频域增强:低通滤波 一.实验目的 1. 掌握图像滤波的基本定义及目的。 2. 理解频域滤波的基本原理及方法。 3. 掌握进行图像的低通滤波的方法。 二.实验基本原理 频域增强是利用图像变换方法将原来的图像空间中的图像以某种形式转换到其他空间中,然后利用该空间的特有性质方便地进行图像处理,最后再转换回原来的图像空间中,从而得到处理后的图像。 频域增强的主要步骤是: 1.选择变换方法,将输入图像变换到频域空间。 2.在频域空间中,根据处理目的设计一个转移函数,并进行处理。 3.将所得结果用反变换得到增强的图像。 常用的频域增强方法有低通滤波和高通滤波。 低通滤波 图像的能量大部分集中在幅度谱的低频和中频部分,而图像的边缘和噪声对应于高频部分。因此能降低高频成分幅度的滤波器就能减弱噪声的影响。由卷积定理,在频域实现低通滤波的数学表达式: G (u ,v ) =H (u ,v )F (u ,v ) 1) 理想低通滤波器(ILPF ) { 0),u (0 ),(10)v ,u (≤>= v D v u D H 2) 巴特沃斯低通滤波器(BLPF ) n D v u D v u H 20),()12(11 ),(??? ? ??-+= 3)指数型低通滤波器(ELPF ) 2 0),(),(n D v u D e v u H ? ?????-= 三.实验内容与要求

平滑频域滤波 1) 设计理想低通滤波器、巴特沃斯低通滤波器和指数型低通滤波器,截止频率自选。 2) 读出cameraman.tif 这幅图像,加入椒盐躁声,分别采用理想低通滤波器、巴特沃斯低通滤波器和高斯低通滤波器对其进行滤波(截止频率自选),再做反变换得到低通滤波后的空域图像。 四.实验程序 I=imread('cameraman.tif');%读入图像 figure; subplot(2,3,1),imshow(I); title('原图'); I=imnoise(I,'salt & pepper',0.02); %加入椒盐躁声 subplot(2,3,2),imshow(I); title('加入椒盐躁声图'); f=double(I); % 由于MATLAB 不支持unsigned int 型图像计算,故将图像数据变为double 型 g=fft2(f); % 傅里叶变换 g=fftshift(g); % 将傅里叶变化零频率搬移到频谱中间 [M,N]=size(g); % 确定图像大小,M 为行数,N 为列数 D0=100; %截止频率 m=fix(M/2); n=fix(N/2);% 确定傅里叶变化原点(即直流部分),并且数据向0 取整result=zeros(M,N); for i=1:1:M for j=1:1:N d=sqrt((i-m)^2+(j-n)^2);%计算D(u,v) if(d<=D0) h=1;%如果D(u,v)<=D0, H(u,v)=1 else h=0;%如果D(u,v)>D0, H(u,v)=0 end result(i,j)=h*g(i,j); end end result=ifftshift(result);% 傅里叶逆移频,由于之前做过fftshift J1=ifft2(result);% 傅里叶反变换 J2=uint8(real(J1));%提取J1 的实部,并将该数据定义为8 位无符号整数 subplot(2,3,3),imshow(J2) ; title('理想低通滤波图'); n=2;%二阶 D0=150; %截止频率 m=fix(M/2); n=fix(N/2);% 确定傅里叶变化原点(即直流部分),并且数据向0 取整result=zeros(M,N);

数字图像处理实验 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)邻域运算的模板尺寸对处理结果有什么影响?

数字图像处理实验报告3

实验三数字图像的空间域滤波 院(系):电气学院姓名:刘丽霞学号:200902050068 实验时间:2012/11/20 实验地点:A07-602 指导老师:李静 一、实验目的 1)掌握图像滤波的基本定义及目的。 2)理解空间域滤波的基本原理及方法。 3)掌握进行图像的空域滤波的方法。 二、实验环境 1)在MATLAB的环境下进行实验; 2)复制若干图形文件至MATLAB目录下work文件夹中。 三、实验方法 1.平滑空间滤波: 1)读出eight.tif这幅图像,给这幅图像分别加入椒盐噪声和高 斯噪声后并与前一张图显示在同一图像窗口中。 I1=imnoise(I,'salt & pepper',0.02); %加入椒盐噪声 I2=imnoise(I,'gaussian',0,0.005); %加入高斯噪声 2)对加入噪声图像选用不同的平滑(低通)模板做运算,对比不 同模板所形成的效果,要求在同一窗口中显示。 Hs = fspecial('sobel'); Sobel = imfilter(I,Hs,'replicate'); %选用不同的平滑模板 3)使用函数imfilter时,分别采用不同的填充方法(或边界选 项,如零填充、’replicate’、’symmetric’、’circular’)进行低通滤波,显示处理后的图像。 4)运用for循环,将加有椒盐噪声的图像进行10次,20次均值 滤波,查看其特点,显示均值处理后的图像。 II1=rgb2gray(I1); a=1/9.*[1 1 1 1 1 1

1 1 1]; b=conv2(a,II1); %均值处理 5)对加入椒盐噪声的图像分别采用均值滤波法,和中值滤波法对 有噪声的图像做处理,要求在同一窗口中显示结果。 2.锐化空间滤波 读出moon.tif这幅图像,采用3×3的拉普拉斯算子w = [ 1, 1, 1; 1 – 8 1; 1, 1, 1]对其进行滤波。 w =[1,1,1; 1,-8,1; 1,1,1]; K=conv2(T,w,'same');%3×3的拉普拉斯算子滤波 四、实验结果

数字图像处理实验一

大学实验报告 学院:计算机科学与技术专业:信息安全班级:131 姓名学号实验组实验时间2016/4/22 指导教师成绩 实验项目名称图像基本操作 实验目的 利用MATLAB软件,熟悉图像的数据矩阵操作、图像的类型转换及图像的存储等基本操作。 1.熟悉图像矩阵的基本操作 2.掌握图像数据类型转换及图像类型转换 3.掌握图像文件的读写 4.掌握图像及灰度图像直方图的显示 5.掌握图像缩放和旋转 实验要求 利用MATLAB软件,熟悉图像的数据矩阵操作、图像的类型转换及图像的存储等基本操作。 1.熟悉图像矩阵的基本操作 2.掌握图像数据类型转换及图像类型转换 3.掌握图像文件的读写 4.掌握图像及灰度图像直方图的显示 5.掌握图像缩放和旋转 实验原理1.关于图像矩阵 MATLAB中图像数据以矩阵方式的存储。所以有必要学会关于矩阵的操作,由于篇幅有限,这里只作简要的介绍。 生成矩阵的函数有: eye 生成单位矩阵 ones全1阵 zeros 全零阵 rand 均匀随机阵 randn 正态随机阵 2.图像数据类型及图像类型 2.1 图像数据类型转换 MATLAB中图像数据矩阵的存储方式为双精度(double)类型即64位浮点数。而存储图像时MATLAB有时采用无符号整型(uint8)即图像矩阵中的每个数据占用一个字节。由于大多数运算和函数(比如最基本的矩阵加减运算)都不支持uint8类型,所以运算时通常要将图像转换成 double型。 函数double将数据转换为双精度浮点类型,调用格式为: X64=double(x8) /256 2.2 图像类型及转换

在MATLAB中,一幅图像可能包含一个数据矩阵,也可能有一个颜色映像表矩阵。MATLAB图像处理工具箱支持四种图像类型,其区别在于数据矩阵元素的不同含意。它们是: ● 真彩色图像 ● 索引图像 ● 灰度图像 ● 二值图像 (1)真彩色图像 真彩色图像又称RGB图像,对于一个尺寸为M×N的彩色图像来说,在MATLAB中则存储为一个M×N×3的多维数组,像素的颜色由保存在像素位置上的R、G、B的强度值的组合来确定。如果需要知道图像A中(x,y)处的像素值,则可以使用这样的代码A(x,y,1:3)。 (2)索引图像 MATLAB中的索引图像包含两个结构,一个是调色板,一个是图像数据矩阵。调色板是一个m×3的色彩映射矩阵,矩阵的每一行都代表一种色彩,与真彩色图像相同,通过3个分别代表红、绿、蓝颜色强度的双精度数,形成一种特定的颜色。调色板通常和索引图像存在一起,当读入图像时,MATLAB同时加载调色板和图像。 (3)灰度图像 灰度图像就是只有强度信息,而没有颜色信息的图像。存储灰度图像只需要一个数据矩阵,矩阵的每个元素表示对应位置像素的灰度值,灰度图像的数据类型可以是doubIe类型,这时值域为[0,1],也可以uint8类刑,值域是[0,255]。 (4)二值图像 二值图像就是只有黑白两种值的图像,我们可以把它看作是特殊的灰度图像。二值图像只需一个数据矩阵来存储,每个像素只取0或1。 MATLAB提供了若干函数,用于图像类型的转换,这些函数如下所示: ●rgb2gray 将RGB图像转换成灰度图像 ●Gray2ind 将灰度图像转换成索引图像 ●Im2bw 设定阈值将图像转换为二值图像 ●Im2double 将图像数据阵列转换为double型 ●Im2unit8 将图像数据阵列转换为unit8型 ●Im2unit16 将图像数据阵列转换为unit16型 ●Ind2gray 将索引图像转换为灰度图像 ●Ind2rgb 将索引图像转换成真彩色图像 2.3 图像读写及显示 MATLAB为用户提供了专门的函数以从图像格式的文件中读写图像数据。 (1)图像文件的读取 利用imread函数可以完成图像文件的读取操作,常见调用格式为: A = imread(FILENAME,FMT) 其作用是将文件名用字符串FILENAME表示的、扩展名用字符串FMT(表示图像文件格式)表示的图像文件中的数据读到矩阵A中。如果FILENAME所指的为灰度图像,则A为M×N的二维矩阵;如果FILENAME所指的为RGB图像,则A为M×N×3的三维矩阵。 (2)图像文件的写入(保存) 利用imwrite函数完成图像的写入操作,也完全支持上述各种图像文件的格式,其常用的调用格式为: imwrite(A,FILENAME,FMT)

相关文档