数字图像处理课件-4邻域处理
- 格式:ppt
- 大小:766.50 KB
- 文档页数:5
第七章 邻域运算目录1. 引言相关与卷积2. 平滑3. 中值滤波4. 边缘检测5.细化作业1.引言邻域运算是指当输出图象中每个象素是由对应的输入象素及其一个邻域内的象素共同决定时的图象运算,通常邻域是远比图象尺寸小的一规则形状,如正方形2x2、3x3、4x4或用来近似表示圆及椭圆等形状的多边形。
信号与系统分析中的基本运算相关与卷积,在实际的图象处理中都表现为邻域运算。
邻域运算与点运算一起形成了最基本、最重要的图象处理工具。
以围绕模板(filter mask, template )的相关与卷积运算为例,给定图象f(x,y)大小N×N,模板T(i, j)大小m ×m (m 为奇数),常用的相关运算定义为: 使模板中心T((m-1)/2,(m-1)/2)与f(x,y)对应,∑∑-=-=--+--+=•=101)21,21(),(),(),(m i m j m j y m i x f j i T y x f T y x g当m=3时,)1,1())2,2(),1()1,2(),1()0,2()1,()2,1(),()1,1()1,()0,1()1,1()2,0(),1()1,0()1,1()0,0(),(++++++++++-++-+-+--=y x f T y x f T y x f T y x f T y x f T y x f T y x f T y x f T y x f T y x g卷积运算定义为:∑∑-=-=-+--+-=•=101)21,21(),(),(),(m i m j m j y m i x f j i T y x f T y x g 当m=3时,)1,1())2,2(),1()1,2()1,1()0,2()1,()2,1(),()1,1()1,()0,1()1,1()2,0(),1()1,0()1,1()0,0(),(--+-++-+-++++-++++++=y x f T y x f T y x f T y x f T y x f T y x f T y x f T y x f T y x f T y x g可见,相关运算是将模板当权重矩阵作加权平均,而卷积与相关不同的只是在于需要将模板沿中心反叠(先沿纵轴翻转,再沿横轴翻转;即沿次对角线翻转)后再加权平均。
上次: 二、图像运算,三、图像变换1.图像的点运算(元素群运算)2.图像的代数运算3.图像的几何运算⇒上机实验一讲:4.图像的邻域(即点的邻域)操作输出图像中的每个像素值都是由输入图像中对应的像素及其某个邻域内的像素共同决定的,这种图像运算称为邻域运算。
通常邻域是指一个远远小于图像尺寸的形状规则的像素块,例如,5⨯的正方形(或其它形状)。
一幅图像所定义的所有邻3⨯、53域应该具有相同的大小。
邻域运算与点运算一起形成了最基本、最重要的图像处理方法。
邻域操作包括两种类型:滑动邻域操作和分离邻域操作。
邻域→点,称滑动邻域操作邻域→邻域,称分离邻域操作(1)滑动邻城操作sliding-neighborhood operation滑动邻域操作一次处理一个像素,输出图像的每一个像素的像素值都是通过对输入图像对应像素的某邻域内的像素值采用某种代数运算得到的。
滑动邻域操作,经常被用于图像的非线性滤波。
例如,一个使输出图像像素值等于输入图像对应像素的各个邻域像素值标准偏差的滑动邻域操作等。
非线性滤波器help nlfilterNLFILTER Perform general sliding-neighborhood operations.B = NLFILTER(A,[M N],FUN) applies the function FUN to each M-by-N sliding block of A. FUN is a function that accepts an M-by-N matrix as input and returns a scalar:C = FUN(X)C is the output value for the center pixel in the M-by-N block X. NLFILTER calls FUN for each pixel in A. NLFILTER zero pads the M-by-N block at the edges, if necessary.B = NLFILTER(A,[M N],FUN,P1,P2,...) passes the additional parameters P1,P2,..., to FUN.B = NLFILTER(A,'indexed',...) processes A as an indexed image, padding with ones if A is of class double and zeros if A is of class uint8.ExampleFUN can be a FUNCTION_HANDLE created using @. This example produces the same result as calling MEDFILT2 with a 3-by-3 neighborhood:B = nlfilter(A,[3 3],@myfun);where MYFUN is an M-file containing:function scalar = myfun(x)scalar = median(x(:));FUN can also be an inline object. The example above can be written as:fun = inline('median(x(:))');B = nlfilter(A,[3 3],fun);讲inline 函数有时为了描述某个数学函数的方便,可以用inline 函数来直接编写该函数,形式相当于已经介绍过的且经常使用的M 函数,但无需编写一个真正的M-文件它就可以描述出某种数学关系。