第二章 图象增强 ( image enhancement)

21
2002, Ver1.0 任任任 任任任任任任任任任任 1 第第第 第第第第 (Image Enhancement) 任任任任任任任任任任任任任任 任任任任 任任任 任任任任 任任任任任任任任任任任任 任任任任任 ,、、、, 任任 任任任任任任 任任任任任任任任任任任任任任任 任任任任任任任 一。,。 任任任任任任任任任任任任 任任任任任 ( 任任 ) 任任任 任任任任任任 ( 任任 ) 任任任任任任任任 ( 任任 ) 任任任任任任任任任任任任任任任任任任任任任任 任任 任任任任任任任任 ,一, 任任任任任任任任任任任任任任任任任 任任任任任任任任任任任任任任任任G(x,y)=F(g(x,y)) 任任 (x,y) 任任任任任 g(x,y) 任任任 (x,y) 任任任任任任F 任任任任任任任任任G(x,y) 任任任 (x,y) 任任任 ( 任任任 ) 任任任任 任任任任任 任任任任任任任任任任任任 。, F F 任任任任任任任任 任任 任任任任 (x,y) 任任任任任任任任任任任任任任 任任任任任任任任任任任任任任任任任任任任任任任任任任任任任 任任任任任任 一, 任任任任任任任任任任任 任任任任任任任任任任任任 任任任任 任任任任任任任任任 任任任任 任任任任任任任任任 。。,一, 任任任任 任任任任任任任任任任任任 。。

Upload: phoebe

Post on 12-Jan-2016

226 views

Category:

Documents


0 download

DESCRIPTION

第二章 图象增强 ( Image Enhancement). 图像增强是指对图像的某些特征,如边缘、轮廓、对比度、亮度等进行强调或尖锐化,以便于观察或进一步分析处理。其手段无非是突出有价值的信息,抑止无用信息。 图像增强的主要方法可分为:基于点运算(空域)的方法、基于邻域运算(空域)的方法、基于变换域(频域)的方法等。 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第二章  图象增强 ( Image Enhancement)

2002, Ver1.0 任明武,南京理工大学计算机系 1

第二章 图象增强(Image Enhancement)

图像增强是指对图像的某些特征,如边缘、轮廓、对比度、亮度等进行强调或尖锐化,以便于观察或进一步分析处理。其手段无非是突出有价值的信息,抑止无用信息。 图像增强的主要方法可分为:基于点运算 ( 空域 ) 的方法、基于邻域运算 ( 空域 ) 的方法、基于变换域 ( 频域 ) 的方法等。 点运算的方法是对像素的灰度级进行变换,是一种点到点的变换,输出图象每个象素点的灰度值仅由对应的输入象素点的灰度值决定。可描述为: G(x,y)=F(g(x,y)) 。其中 (x,y) 是象素的坐标, g(x,y) 是象素 (x,y) 原来的灰度值, F 是灰度值的变换函数, G(x,y) 是象素 (x,y) 变换后 ( 增强后 ) 的灰度值。可以看出,点运算的关键是寻找合适的 F , F 的自变量是灰度值,与像素的坐标 (x,y) 没有任何关系。 邻域运算的方法是一种利用各象素及其邻近各象素的灰度值来判断该点是否含有噪声,并用适当的适当的方法消除噪声的方法。其自变量是坐标和灰度值。习惯上,将这部分内容单分一章讨论,并称之为图像平滑或图像滤波。我认为这种分法是合理的。

Page 2: 第二章  图象增强 ( Image Enhancement)

2002, Ver1.0 任明武,南京理工大学计算机系 2

通俗地讲,线性变换即比例变换,即因变量和自变量之间存在固定的比例系数,该系数为常数。灰度变换函数为线性函数: G=F(g)=a·g+b 当 a>1 时,输出图象对比度增大;当 a<1 时,输出图象对比度降低;当a=1 , b≠0 时,仅使输出图象的灰度值上移或下移,其效果是使整个图象更亮或更暗。 ( 举例 )

基于变化域的方法属于频率域的处理方法,主要指低通和高通滤波。低通滤波用来消除噪声,高通滤波用来提升边缘、轮廓。实现过程是使用某种变换 ( 如傅立叶变换,余弦变换、小波变换等 ) ,将图像变换到某个变换域( 频域 ) 内,对图像的变化系数值进行运算,即作某种修正,然后通过逆变换得到增强后的图像。

2.1 线性变换和分段线性变换 (linear Stretch)

我们在本章中主要讲述点运算,包括: ․ 线性变换和分段线性变换 ․ 非线性变换 ․ 直方图均衡化 ․ 直方图规定化

Page 3: 第二章  图象增强 ( Image Enhancement)

2002, Ver1.0 任明武,南京理工大学计算机系 3

一般情况下,线性变换都是将某个较小的灰度范围拉伸到较大的灰度范围。因此常称为灰度拉伸。比如,在曝光不足或过度的情况下,图像的灰度可能局限在一个很小的范围内,此时需要线性拉伸。 设原图象的灰度变化范围为 [gmin , gmax] ,通过一个函数 F ,使范围扩展到 [Gmin, Gmax] ,则有线性变换:

)( minminmax

minmaxmin gg

gg

GGGG

即通过两个点 (gmin, Gmin) 和 (gmax, Gmax) 的直线方程。例:

200 150 100 50

200 150 100 50

4 3 2 1

4 3 2 1

的方程为:

G

G = 50g

F

Gmax

Gmin

gmin ggmax0

Page 4: 第二章  图象增强 ( Image Enhancement)

2002, Ver1.0 任明武,南京理工大学计算机系 4

G G

F

F255

255 60 255

180

255

0 0

观察下面方程分别实现的功能:

g

G

g0

255

分段线性拉伸是将图像区间分成两段乃至多段作线性变换。在感兴趣的区间,斜率大于 1 ,突出有价值的信息;在不感兴趣的区域,斜率小于 1 ,抑止无用信息。

2.2 非线性变换 有时图像中灰度的动态范围太大,以至于计算机的显示器难以显示出( 计算机只能表述 256 级灰度 ) ,比如 CT片在计算机的显示器上就难以显示,通常采用取对数的方法加以调整,即:

)1lg( gcG

Page 5: 第二章  图象增强 ( Image Enhancement)

2002, Ver1.0 任明武,南京理工大学计算机系 5

由于点运算在处理与显示中的重要性,图象处理系统都有专门的处理硬件与之对应,以便能够以视频速率实时完成操作,这样的部件称为查找表 ( LUT (LookUp Table ) ) 。通常图象处理系统都有成组的查找表供编程使用。在通用的计算机上,没有查找表可以直接利用,通过软件逐点处理来实现,这时查找表仅表现为一种数据结构。 因为在数字图像处理中,自变量 g的值域是有限的,比如通常的灰度图像中,0<=g<=255 ,最多只有 256种取值,因此,对于实现任意的 G=F(g)而言,都可以使用查表的方法实现,具体如下: BYTE LUT[256]; BYTE *pCur,*pEnd=Img+ImgSize; for(g = 0;g < 256;g ++) LUT[g ] = F(g ); for( pCur =Img ; pCur < pEnd;) *(pCur++) = LUT[*pCur]; 如果写成如下的形式就太费时间了 for( i = 0,pCur =Img ; i < Imgsize; i ++) *(pcur++) =F(*pcur); 因为在使用 LUT 时, F 函数仅被计算 256次,而在不使用时要计算 ImgSize次,当图像为 512x512 时, F 要被计算 262144次。

其中, c 是比例系数,式中的 1 和绝对值是避免对负数和 0取对数。

2.3线性和非线性变换的编程

Page 6: 第二章  图象增强 ( Image Enhancement)

2002, Ver1.0 任明武,南京理工大学计算机系 6

注 1 :图像的特点和 LUT表的使用

图像的特点:数据量特别大,灰度值的范围非常小。因此,任意的以图像灰度为自变量的函数,都可以使用查表的方法实现。查找表实际上是一种以空间换时间的策略。思考 1 : G(x,y)=F(a(x,y)-b(x,y))=|a(x,y)-b(x,y) | 的使用 LUT表实现。其中, a(x,y) , b(x,y)分别是图像 A 和 B中的象素 (x,y) 的灰度值。

BYTE LUT[511],*absLUT; absLUT=LUT+255; for(i=0;i<256;i++) absLUT[i]=absLUT[-i]=i;注 2 :图像的亮度和对比度 图象亮度 (brightness) :即图象矩阵的平均值,其值越小越暗。

NM

yxg

brighness

M

y

N

x

1

0

1

0

),(

图象的对比度 (contrast) :即图象矩阵的均方差 ( 标准差 ) 。对比度越大,图像中黑白反差越明显。

NM

brighnessyxg

contrast

M

y

N

x

1

0

1

0

2)),((

Page 7: 第二章  图象增强 ( Image Enhancement)

2002, Ver1.0 任明武,南京理工大学计算机系 7

思考 2 :如何快速计算图像的亮度和对比度。

例 1 :通过点运算使得图像的亮度为 u0 和对比度为 d0

解:设当前图像的亮度和对比度分别为 u1 和对比度为 d1 ,则可分 3步完成:

Step.1 将图像的亮度调整为 0。

G1=g-u1

可知,在调整过程中,均方差不变,仍为 d1 。

Step.2 将图像的均方差调整为 d0

G2=G1*d0/d1

可知,在调整过程中,均值不变,仍为 0。

Step.3 将图像的均值调整为 u0 。

G3=G2+u0

归纳 Step.1∽3 得到: G=(d0/d1) *( g-u1 ) + u0

Page 8: 第二章  图象增强 ( Image Enhancement)

2002, Ver1.0 任明武,南京理工大学计算机系 8

2.4.1 直方图的基本概念 直方图( histogram)是灰度级的函数,它表示图象中具有每种灰度级的象素的个数,反映图象中每种灰度出现的频率。如下图所示,灰度直方图的横坐标是灰度级,纵坐标是该灰度级出现的频率,是图象的最基本的统计特征。

2.4 直方图均衡化 (Histogram Equalize)

Page 9: 第二章  图象增强 ( Image Enhancement)

2002, Ver1.0 任明武,南京理工大学计算机系 9

从概率的观点来理解,灰度出现的频率可看作其出现的概率,这样直方图就对应于概率密度函数(pdf (probability density function))p(r),而概率分布 P(r)函数就是直方图的累积和,即概率密度函数的积分,如右图所示:

r

drrprP0

)()(dr

rdPrp

)()(

Page 10: 第二章  图象增强 ( Image Enhancement)

2002, Ver1.0 任明武,南京理工大学计算机系 10

若直接从代表每种灰度 r的象素数目的直方图 H(r)来观察,常有如下的表示:

r

drrHrA0

)()(

255

0

0 )( drrHA

00

/)()()(

A

drrdA

A

rHrp

r

drrHA

rP00

)(1

)(

概率密度

概率分布函数

图像面积

若记图像中象素的总数为 n, 灰度为 rk 的像素总数为 nk ,则有:

象素分布函数

n

nrp kk )(

k

i

ik n

nrP

0

)(

Page 11: 第二章  图象增强 ( Image Enhancement)

2002, Ver1.0 任明武,南京理工大学计算机系 11

直方图的计算是很简单的,依据定义,若图象具有 L(通常 L=256,即8位灰度级)级灰度,则大小为MxN的灰度图象 f(x,y)的灰度直方图hist[0…L-1]可用如下计算获得: Step.1 初始化 hist[k]=0 ; k=0,…,L-1 Step.2 统计 hist[g(x,y)]++ ; x, y =0,…,M-1, 0,…,N-1

unsigned long hist[256]; unsigned char *pCur; for(int i=0;i<256;i++) hist[i]=0; for(i=0,pCur=Img;i<ImgSize;i++) hist[*(pCur++)]++;

直方图具有很多的优点,直方图能反映图象的概貌,比如图像中有几类目标,目标和背景的分布如何;通过直方图可以直接计算图像中的最大亮度、最小亮度、平均亮度、对比度以及中间亮度等。使用直方图可以完成图像分割、目标检索等。因为不同的目标具有不同的颜色分布。使用归一化直方图作目标匹配,还不易受到目标翻转和目标大小变化的影响。在图像查询的系统中,直方图有很大的应用,用它存储目标的特征占有空间小,且执行速度快。 其缺点是:因其没有记录位置信息,不同的图像会具有相同或相近的直方图。

Page 12: 第二章  图象增强 ( Image Enhancement)

2002, Ver1.0 任明武,南京理工大学计算机系 12

例 1 :观察下面那个直方图最可能是一个文档图像的直方图

例 2 :通过直方图求图像中的亮度的最大、最小和中值。

for(g=0;g<256;g++)

if (hist[g]) break;

minGray=g;

for(g=255;g>=0;g--)

if (hist[g]) break;

maxGray=g;

for(g=sum=0;g<256;g++)

{ sum+=hist[g];

if (sum>=ImgSize/2) break;

}

medGray=g;

(注: N 个数据进行排列后得到一个有序序列 A0…An-1, 其中 An-1/2 称为中值 )

Page 13: 第二章  图象增强 ( Image Enhancement)

2002, Ver1.0 任明武,南京理工大学计算机系 13

例 3 :通过直方图求图像的亮度和对比度。for(g=sum=0;g<256;g++) sum+=g*hist[g];

brightness=1.0*sum/ImgSize;

for(g=sum=0;g<256;g++)

sum+= (g-brightness)* (g-brightness)*hist[g];

contrast=sqrt(sum/ImgSize);

2.4.2 直方图均衡化算法 熵理论 (Entropy) 是信息量的度量,其定义为:

ipipH log

其中, pi 是符号 i 出现的概率。

在图象中 , rpr

gpH log

255

0 , pr 是灰度级 r 出现的概率。

可以证明,当 p0=p1=p2=…=p255=1/256 时, H取最大值,即图象信息量最大。

Page 14: 第二章  图象增强 ( Image Enhancement)

2002, Ver1.0 任明武,南京理工大学计算机系 14

均衡化原理:根据熵理论可知当 H[0],H[1]…,H[n-1]相等时,图象信息量最大均衡化的目的是使每个 Hi 都相等,即把原始图的直方图变换为均匀分布的形式,这样就增加了象素值的范围,增强了图象的对比效果。

算法描述:令 A0 是图象面积, N 是有效亮度级的个数,对于一个完全平坦的直方图来说,应该在每一个亮度级上 A0/N 个象素。设 g 是原来的灰度级, G 是变换后的灰度级,则可描述为: G=F(g) 。但实际应用中,有两种情况需要考虑: (1) 多个 至一个:若有连续 n 个灰级的频数之和级等于 A/N, 则必导致它们合并成一个灰度级。 (2) 一个到多个:若有某个灰级的频数是 A/N 的 R倍,则必须将其分为R 个不同的灰阶级,每一个上都是 A/N 。 情况 (1)导致的灰度级的合并是简单的 ( 是多到一的映射关系 ) ,但情况(2) 时的分解是不容易的 ( 是一到多的关系 ) ,因为确实难以判定 g 在图像的不同位置,到底如何分解才是最好。假设灰度级 g 要映射到 [GL, GR] 中,有 3 种规则可以遵循: (1)规则 1 :总是将 g映射为 (GL+GR)/2 。

(2)规则 2 :随机分配出 [GL, GR] 中的一个灰度级 。

Page 15: 第二章  图象增强 ( Image Enhancement)

2002, Ver1.0 任明武,南京理工大学计算机系 15

(3)规则 3 :检查该象素的近邻象素的灰度平均值 u ,并分配给它一个[GL, GR] 中最接 u 的灰度级 Gk 。 规则 1 是简单的,满足点运算的原则。规则 2 使用随机数 ( 函数 ) ,执行速度慢,且含义不明显。规则 3 使用了邻域运算,其输出与象素的位置有关系,不是点运算。在实际应用中,一般仅使用规则 1 。 由此可以看出,均衡后的图像并不均衡,因为“只合并,不分解”;但拉大了反差,将拥有特别多的像素的灰度级变得与前与后的灰度级拉开了距离。比如 1 [1,1] , 2 [2,3,4,5,6] , 3 [7,7] 变成 1 1 , 2 4 , 3 7 。从而使得原灰度级为2 的像素在均衡后的图像中特别显眼。 关于直方图均衡化的数学描述是很多的,下面我们给出一个简单的、易懂的描述。设变换前的图像的直方图为 H1 ,要求变换后得到的图像的直方图为 H2 。如果将原始灰度级 g被变成灰度级 G ,则必须满足:

G

i

g

i

iHiH0

20

1 )()(

这是非常显然的,比如考试成绩的前 5名在变换后仍然为前 5名;又比如,要使 1班的成绩和 2班的一样,则必须将 1班的第五名的成绩 g 变成 2班的第五名的成绩 G ,即他们俩之前都有 5 个人。

Page 16: 第二章  图象增强 ( Image Enhancement)

2002, Ver1.0 任明武,南京理工大学计算机系 16

在图像均衡化后, H2 要求是每个灰度级上都有 A0/N 个象素,显然有:

N

AGiHiH

G

i

g

i

0

02

01 )()(

从而得到 G=F(r) :

)()(00

10

gAA

NiH

A

NG

g

i

A(r) 是累积函数。得到算法如下: Step.1 计算累积函数 A(r) 如下: for(g=0;g<256;g++) A[g]=0; if (Hist[0]) N=1; else N=0;

for(g=1,A[0]=Hist[0];g<256;g++)

{ A[g]=A[g-1]+Hist[g];

if (Hist[g]) N++; //统计有效的灰度级的个数 }

Step.2 计算映射关系 for(g=0;g<256;g++) LUT[g]=N*A[g]/A[255]; // A0=A[255]

Step.3 均衡化操作 for( i = 0,pCur =Img ; i < Imgsize; i ++) *(pCur++) = LUT(*pCur);

Page 17: 第二章  图象增强 ( Image Enhancement)

2002, Ver1.0 任明武,南京理工大学计算机系 17

在整个计算过程中,我们使用的不是归一化直方图和归一化灰度,这样在上面的算法完成后,得到的最大灰度为 N ,而不是 255 。因此在 Step.2中,需要构造线性拉伸。 Step.2 计算映射关系 for(g=0;g<256;g++) LUT[g]=(255.0/N)*N*A[g]/A0; 即 Step.2 for(g=0;g<256;g++) LUT[g]=255*A[g]/A0;

上面的算法已经是大家和很多教科书上采用的,但它没有使用规则 1 将g (GL +GR )/2 ,而是将 g GR 。导致与前个灰度级 (GL-1) 拉开了距离,而与后一个灰度级 (GR+1)靠的很近。比如 1 [1,1], 2 [2, 3, 4, 5,6] , 3 [7,7] 变成 1 1 , 2 6(4) , 3 7 。具体算法,大家自己写。

Page 18: 第二章  图象增强 ( Image Enhancement)

2002, Ver1.0 任明武,南京理工大学计算机系 18

0 1 2 3 4 5 6 7

1/21

1/14

4/7

1/7例:

1/7

1/7

1/7

1/7

1/7

1/14 , 1/14

1/21 , 1/21 , 1/21f灰度级 g 新灰度区间[GL , GR]

1

2

3

4

5

6

7

[0 , 0]

[0 , 0]

[0 , 0]

[1 , 1]

[1 , 1]

[2 , 3 , 4 , 5][6 , 6]

0

1

2

3

4

5

6

6

6

6

6

7

Page 19: 第二章  图象增强 ( Image Enhancement)

2002, Ver1.0 任明武,南京理工大学计算机系 19

1

2

3

4

5

6

7

0

0

0

1

1

4

6

LUT[1] = 0

LUT[2] = 0

LUT[3] = 0

LUT[4] = 1

LUT[5] = 1

LUT[6] = 4

LUT[7] = 6

按规则 1 得到的映射关系 (LUT) : 拉伸后:

LUT[1] = 0

LUT[2] = 0

LUT[3] = 0

LUT[4] = 42

LUT[5] = 42

LUT[6] = 170

LUT[7] = 255

Page 20: 第二章  图象增强 ( Image Enhancement)

2002, Ver1.0 任明武,南京理工大学计算机系 20

2.4 直方图规定化 直方图规定化是指将一幅图象通过灰度变换后,使其具有特定的直方图形式,如使图象与某一标准图象具有相同的直方图,或使图象具有某一特定函数形式的直方图。 简单地说,就是把一个图象经过灰度变化 f 后,使得它的直方图为 Hf ,即规定形状。 用途:可用来校正因亮度和传感器差异引起的变化。比如,在比较同一个场景在不同的光照条件下的得到的两幅图像之前。 算法:以均衡化为桥梁 F1: H1(g1)----------H0(s)

F2: H2(g2)----------H0(v)

考虑到作为均匀分布的随机变量 V 和 S具有完全相同的统计性质,因而从统计意义上说,它们是等同的。因而,由 s=F1(g1) 和 v=F2(g2) 和 v=s ,得到 g2=F2-1(v)= F2-1(s)= F2-1(F1(g1)) 。

作业:对图像中的每一个像素 (x,y) ,在其周围取MxN 个象素,计算此MxN 个象素的灰度值的均值 U1 和均方差 D1 ,假若将均值和均方差分别变为 U0 和 D0 ,则得到 G(x,y)=(D0/D1)*(g(x,y)-U1)+U0 。对每个象素全部执行上述操作,新得到的图像和原图像相比有何变化。

Page 21: 第二章  图象增强 ( Image Enhancement)

2002, Ver1.0 任明武,南京理工大学计算机系 21

尝试:下面两幅图像是在不同光照下得到的,使用本章中讲过的原理,对它们进行一致化。 ( 提示:本问题可能无法解决,若能解决可写一片优秀论文;尝试一下,可知道各种方法的缺陷 )