数字图像实验:图像形态学操作
- 格式:doc
- 大小:43.00 KB
- 文档页数:3
《医学图像处理》实验报告摘要本次实验的目的是对二值原始图像进行膨胀和腐蚀,并对经过膨胀和腐蚀后的两张图像进行集合的逻辑运算操作——交集、补集、相减;对二值图像进行边界提取操作;利用阈值处理的方法对二值图像进行连通分量的提取操作;运用上述结果和其他技术解决课本P442的习题9.36。
本次实验的内容是图像腐蚀图像膨胀边界提取连通分量的提取。
一、技术讨论1.1实验原理1.1.1图像的腐蚀腐蚀缩小或细化了二值图像中的物体。
用3X3的结构元,扫描二值图像的每一个元素,将结构元与其覆盖的二值图像做“与”操作,若结果均为1,输出图像的该像素为1,否则输出图像的该像素为0。
图示如下:1.1.2图像的膨胀膨胀会增长或粗化二值图像中的物体。
用3X3的结构元,扫描二值图像的每一个像素,将结构元关于原点的映射与其覆盖的二值图像做“与”操作,若结果均为0,输出图像的该像素为0,否则输出图像的该像素为1。
图示如下:1.1.3图像的边界提取对图像进行边界提取的方法是先对二值图像进行腐蚀,再将经过腐蚀后的输出图像和原始图像做集合差的逻辑运算。
图示如下:1.1.4图像的连通分量提取连通分量是指若像素子集S的全部像素之间存在一个通路,则可以说两个像素p和q之间是连通的,对于S中的任何像素p,S中连通到该像素的像素称为S的连通分量。
图像连通分量的提取方法是先对二值图像进行阈值处理,再对输出图像做腐蚀处理。
1.1.5测地膨胀测地膨胀不是包含一幅输入图像和特定的结构元素而是涉及两幅图像:标记图像和模版图像。
其基本思想是用特定结构元素对标记图像作膨胀运算,并将结果图像限制在模版图像之下。
图示如下:1.2实验函数示例:A.cvErode( const CvArr* src, CvArr* dst, IplConvKernel* element=NULL, intiterations=1 );——对二值图像进行腐蚀处理。
1.void cvDilate( constCvArr* src, CvArr* dst, IplConvKernel* element=NULL, intiterations=1 );--对二值图像进行膨胀处理;2.void cvThreshold( constCvArr* src, CvArr* dst, double threshold, double max_value, intthreshold_type);--阈值处理函数;二、结果与讨论2.1实验结果(每个实验均要使用3个不同大小的结构元进行处理,并将实验结果列举出来,注明结构元大小)a. Originpicb. intersectionc. img_eroded.img_dilatee. differencingf. Complementation图1.1、图像腐蚀和膨胀(3X3结构元,中心点为1,1)a. Originpicb. intersectionc. img_eroded.img_dilatee. differencingf. Complementation图1.2、图像腐蚀和膨胀(7X7结构元,中心点为3,3)a. Originpicb. intersectionc. img_eroded.img_dilatee. differencingf. Complementation图1.3、图像腐蚀和膨胀(9X9结构元,中心点为4,4)a. Originpicb. img_outc. img_erode图2.1、边界提取(3X3结构元,中心点为1,1)a. Originpicb. img_outc. img_erode图2.2、边界提取(7X7结构元,中心点为1,1)a. Originpicb. img_outc. img_erode图2.3、边界提取(10X10结构元,中心点为1,1)a. Originpicb. img_outc. img_erode图2.4、边界提取(10X10结构元,中心点为5,5)a. Originpicb.img_out1c.img_out2图3.1、连通分量的提取(5X5结构元,中心点为3,3)a. Originpicb.img_singlec.img_intersectd. img_boundary图4.1 problem4-362.2实验讨论(详细说明解决课本习题9.36的具体思路和过程,若有更好地解决课本习题9.36的方法,请详细给出解答思路或过程)1.腐蚀的作用是消除物体边界点,使目标缩小,可以消除小于结构元素的噪声点;膨胀的作用是将与物体接触的所有背景点合并到物体中,使目标增大,可添补目标中的空洞。
实验6 形态学图像处理一.实验目的:1.掌握形态学图像处理的基本算法:膨胀、腐蚀。
2.掌握MATLAB函数中用于构建结构元的标准函数。
3.掌握开运算、闭运算。
二.实验内容:1.利用MATLAB标准函数构建结构元。
2.运用MATLAB标准函数进行膨胀、腐蚀运算,以及开运算、闭运算三.实验原理:1.构建结构元MATLAB标准函数strel运用各种形状和大小构造结构元素,其基本语法为:se = strel(shape, parameters)其中,shape是指定的希望形状的字符串,而parameters是指定形状信息(如其大小)的一系列参数。
语句形式描述se = strel(‘diamond’, R) 创建一个菱形结构元,其中R是从结构原点到菱形最远点的距离se = strel(‘disk’, R) 创建一个圆盘形结构元,其半径为Rse = strel(‘square’, R) 创建一个方形结构元,其边长为R例:>> se = strel(‘diamond’, 5) //返回一个沿水平和垂直轴扩展5个像素的菱形结构元2.膨胀、腐蚀运算,开运算、闭运算膨胀:MATLAB标准函数imdilate(f, se),f是输入的二值图像,se是用于膨胀的结构元,函数的输出即为膨胀后的二值图像。
腐蚀:MATLAB标准函数imerode(f, se),f是输入的二值图像,se是用于腐蚀的结构元,函数的输出即为腐蚀后的二值图像。
开运算(先腐蚀再膨胀):MATLAB标准函数imopen(f, se),f是输入的二值图像,se是结构元,函数的输出即为开运算后的二值图像。
闭运算(先膨胀再腐蚀):MATLAB标准函数imclose(f, se),f是输入的二值图像,se是结构元,函数的输出即为闭运算后的二值图像。
例:>>f = imread('E:\医学图像处理实验讲义\实验六\mask.bmp')>>se = strel('diamond', 5)>> fd = imdilate(f, se) //膨胀运算>>imshow(f)>>figure, imshow(fd)>>se = strel('diamond', 25)>>fd = imdilate(f, se)>>figure, imshow(fd)四.实验报告:1.创建一个parameters = 1的菱形结构元,在报告中画出该结构元的形状及元素值,并用该结构元对图像text.bmp进行膨胀运算。
西安邮电学院实验报告实验名称形态学图像处理课程名称数字图像处理A 姓名成绩班级学号日期2011.5.31 地点3#531实验三 形态学图像处理1. 实验任务(1)了解并掌握膨胀、腐蚀及开运算、闭运算的基本原理;(2)编写程序使用开运算、闭运算处理图像,进一步理解开运算、闭运算的实质;(3)编写程序使用开运算、闭运算进行图像去噪处理,根据实验结果分析效果;(4)总结实验过程(实验报告,左侧装订):方案、编程、调试、结果、分析、结论。
2. 实验环境Windws2000/XPMA TLAB 7.x3.实验方法对两幅受噪声干扰的数字图像curve_128.bmp (如图3.1所示)和enoise.bmp (如图3.2所示)进行如下处理:(1)对两幅图像进行腐蚀、膨胀处理,显示处理前、后图像:用不同尺度及形状的结构元素进行腐蚀、膨胀处理,分析结构元素对处理效果的影响; (2)分别对两幅图像设计相应的开、闭运算进行降低噪声的处理,显示处理前、后图像;分析两幅图像为了降低噪声所设计的运算有无不同?如果有请分析为什么会有这种不同?具体实现:在MA TLAB 7.x 中按要求编写附件中程序,分析程序功能;输入执行各命令行,认真观察命令执行的结果。
熟悉并掌握程序中所使用函数的调用方法,改变有关参数,观察并分析试验结果。
4.实验分析图3.1 实验图像curve_128.bmp图3.2 实验图像enoise.bmp在MatLab 中输入各程序代码后运行程序,得到输出结果如图所示: 1-11-22-1原图像加噪声图像线形性腐蚀图线形膨胀图圆形腐蚀图圆形膨胀图原图像加噪声图像线形腐蚀图线形膨胀图方形腐蚀图方形膨胀图2-25.实验结论通过实验理解腐蚀膨胀的用途,腐蚀可以将邻近的不同的目标分离开来,可以将小颗粒的噪声去除;膨胀能够有效地填充物体内部细小的空洞,连接断裂的目标,以便于整体提取,同时能在不明显改变物体面积的情况下平滑物体的边界;但是腐蚀膨胀运算会改变原目标物的大小,所以使用开闭运算解决这个缺点, 开运算即是将原图先腐蚀再膨胀,它可以在分离粘连目标物的同时基本保持元目标物的大小;闭运算即是将原图先膨胀再腐蚀,它可以在合并断裂目标物的同时原图像加噪后图像线形闭运算后图像线形开运算后图像圆形闭运算后的图像圆形开运算后图像原图像加噪后图像腐蚀操作膨胀操作腐蚀操作膨胀操作基本保持原目标物的大小。
形态学图像处理实验1.算法原理1)提取与图像边界融合的颗粒可利用区域填充算法。
如图1所示为源图像,可将图像先转换为二值图像,然后对其进行取反,这样进行区域填充的结果将为与边界相连的颗粒,再与源图像进行比较,即可得出在源图像中与边界相连的颗粒图像。
2)提取彼此交叠的颗粒可利用图像的腐蚀与膨胀操作。
先用模板对图像进行腐蚀操作,由于相交叠的颗粒面积必然比独立的颗粒大,因此腐蚀操作之后剩下的部分为交叠颗粒的部分,再对其进行膨胀,将其与源图像进行比较操作,则可得出交叠的颗粒图像。
3)提取不交叠的颗粒得出交叠的颗粒之后,用源图像对其相减,则得出的为独立分布的颗粒图像。
2.Matlab源代码clear allclcorigin = imread('E:\Documents\BUPT\DIP\第三次作业\grain.jpg');imshow(origin);title('原图');origin = rgb2gray(origin);filterResult = medfilt2(origin);[m,n] = size(origin);%%%%%%%%%%%%取与边界融合的粒子%%%%%%%%%%%%%binaryIm = im2bw(origin);tmp = ~binary Im; %tmp为取反图像fieldFilling = imfill(tmp,'holes');figure, imshow(fieldFilling);title('区域填充结果');boudaryGrains = origin;for i = 1:mfor j = 1:nif fieldFilling(i,j) ==1boudaryGrains(i,j) = 0;endendendfigure, imshow(boudaryGrains);title('与边界融合的粒子结果');%%%%%%%%%%%取交叠与未交叠的粒子%%%%%%%%%%%%mask1 = strel('ball',12,12);%mask2 = ones(13,13);mask2 = strel('ball',7,7);mask3 = strel('disk',4);mask4 = strel('ball',6,6);result1 = imerode(filterResult,ones(15,15));result2 = filter2(fspecial('average',7),im2double(result1)); result2 = medfilt2(result2);result2 = im2uint8(result2);result3 = imdilate(result2,mask1);figure,imshow(result2);title('第一次腐蚀结果'); figure,imshow(result3);title('第一次膨胀结果');result4 = origin;for i = 1:mfor j = 1:nif result3(i,j) <=20result4(i,j) = 0;elseresult4(i,j) = origin(i,j);endendendfigure,imshow(result4);title('阈值处理结果');result5 = imerode(result4,mask4);result6 = imdilate(result5,mask4);figure,imshow(result6);title('交叠粒子结果');result7 = origin-result4;result8 = imerode(result7,mask4);result9 = imdilate(result8,mask4);figure,imshow(result9);title('未交叠粒子结果');3. 运行结果分析1) 提取与边界融合的颗粒原图区域填充结果与边界融合的粒子结果第一次腐蚀所示结果为在腐蚀之后进行了一次中值滤波和一次5X5均值滤波的结果,为使腐蚀的结果更好,去除独立颗粒的腐蚀残留图像。
《数字图像处理》实验教案一、实验目的与要求1. 实验目的(1) 理解数字图像处理的基本概念和原理;(2) 掌握常用的数字图像处理方法和技术;(3) 能够运用数字图像处理软件进行图像处理和分析。
2. 实验要求(1) 熟悉计算机操作和图像处理软件的使用;(2) 能够阅读和理解图像处理相关的文献资料;二、实验内容与步骤1. 实验内容(1) 图像读取与显示;(2) 图像的基本处理方法:灰度化、二值化、滤波;(3) 图像的增强与复原;(4) 图像的分割与描述;(5) 图像的压缩与编码。
2. 实验步骤(1) 打开图像处理软件,导入实验所需的图像;(2) 进行图像的基本处理,观察处理前后的效果;(3) 应用图像的增强与复原方法,改善图像的质量;(4) 使用图像的分割与描述技术,提取图像中的目标区域;(5) 对图像进行压缩与编码,观察压缩后的效果。
三、实验注意事项1. 实验前请确保已经安装了图像处理软件,并熟悉其基本操作;3. 在进行图像分割与描述时,请合理选择阈值和算法,确保目标区域的准确提取;四、实验报告要求1. 实验报告应包括实验目的、实验内容、实验步骤、实验结果和实验总结;2. 实验报告中应详细描述实验过程中遇到的问题及解决方法;3. 实验报告应有清晰的图像处理结果展示,并附上相关图像的处理参数和效果对比;五、实验评分标准1. 实验目的与要求(20分):是否达到实验目的,是否符合实验要求;2. 实验内容与步骤(30分):是否完成实验内容,是否遵循实验步骤;3. 实验注意事项(20分):是否注意实验注意事项,处理过程中是否出现错误;4. 实验报告要求(30分):报告结构是否完整,描述是否清晰,图像处理结果是否合理,总结是否到位。
评分总分:100分。
六、实验一:图像读取与显示1. 实验目的(1) 学习如何使用图像处理软件读取和显示图像。
2. 实验步骤(1) 打开图像处理软件。
(2) 导入实验所需的图像文件。
实验四:数学形态学及其应用1.实验目的1.了解二值形态学的基本运算2.掌握基本形态学运算的实现3.了解形态操作的应用2.实验基本原理腐蚀和膨胀是数学形态学最基本的变换,数学形态学的应用几乎覆盖了图像处理的所有领域,给出利用数学形态学对二值图像处理的一些运算。
膨胀就是把连接成分的边界扩大一层的处理。
而收缩则是把连接成分的边界点去掉从而缩小一层的处理。
二值形态学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 mj i ++=Θ==膨胀:[]),(&),(),)((),(0,j i T j y i x I OR y x T I y x D mj 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 B4.闭close :∨Θ⊕=B B X XB)(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 )(/⊗⋂=⊗=去掉满足匹配条件的点。
%实验八
%1.使用函数imread打开一幅灰度图像(fig0906.tif);
%对图像进行膨胀运算,分别使用半径为5的结构元素
f1=imread('C:\Documents and Settings\Administrator\桌面\实验八\fig0906.tif');
%B = strel('disk',5); %半径为5
%B=strel('rectangle',[5 5])
B=ones(5);
F=imdilate (f1,B);
figure
subplot(121);imshow(f1);title('原图');
subplot(122);imshow(F);title('膨胀结果(半径为5)');
%使用函数imread打开一幅灰度图像(fig0908.tif);
%对图像进行腐蚀运算,分别使用半径为5,10,20的结构元素,观察三种的结果的差异;f2=imread('C:\Documents and Settings\Administrator\桌面\实验八\fig0908.tif');
B1=ones(5);
B2=ones(10);
B3=ones(20);
F1=imerode (f2,B1);
F2=imerode (f2,B2);
F3=imerode (f2,B3);
figure
subplot(221);imshow(f2);title('原图');
subplot(222);imshow(F1);title('腐蚀(半径为5)');
subplot(223);imshow(F2);title('腐蚀(半径为10)');
subplot(224);imshow(F3);title('腐蚀(半径为20)');
%3.使用函数imread打开一幅灰度图像(fig0910.tif);
%使用半径为10的结构元素,分别对图像进行开运算和闭运算,观察两种运算结果之间的差异;
f3=imread('C:\Documents and Settings\Administrator\桌面\实验八\fig0910.tif');
B4=ones(10);
F4=imopen (f3,B4);
F5=imclose (f3,B4);
F6=imopen(F5,B4);
figure
subplot(221);imshow(f3);title('原图');
subplot(222);imshow(F4);title('开运算');
subplot(223);imshow(F5);title('闭运算');
subplot(224);imshow(F6);title('先闭后开');
%使用函数imread打开一幅灰度图像(fig0926bw.tif);
%这是一张米粒的照片,设计一种方法,使用前面介绍的函数计算米粒的个数f4=imread('C:\Documents and Settings\Administrator\桌面\实验八\fig0926bw.tif'); [L, n] = bwlabel(f4,4);
L = bwlabel(f4,4)
原图膨胀结果(半径为5)
原图腐蚀(半径为5)
腐蚀(半径为10)腐蚀(半径为20)
原图开运算
闭运算先闭后开。