图像预处理的方法和流程
发布网友
发布时间:2024-10-18 21:02
我来回答
共1个回答
热心网友
时间:2024-12-13 07:18
图像预处理,是将每一个文字图像分检出来交给识别模块识别,这一过程称为图像预处理。在图像分析中,对输入图像进行特征抽取、分割和匹配前所进行的处理。图像预处理的主要目的是消除图像中无关的信息,恢复有用的真实信息,增强有关信息的可检测性和最大限度地简化数据,从而改进特征抽取、图像分割、匹配和识别的可靠性。
中文名图像预处理含 义将文字图像分检后给识别模块识别实现灰度级变换(点运算)的实现变换实例图象求反等
灰度级变换(点运算)的定义
对于输入图像f(x,y),灰度级变换T将产生一个输出图像g(x,y),且g(x,y)的每一个像素值都是由f(x,y)的对应输入像素点的值决定的,g(x,y)=T(f(x,y))。
对于原图象f(x,y)和灰度值变换函数T(f(x,y)),由于灰度值总是有限个(如:O~2 5 5),非几何变换可定义为:R=T(r),其中R、r(0,255)。
灰度级变换(点运算)的实现
R=T(r)定义了输入像素值与输出像素之间的映射关系,通常通过查表来实现。
变换实例
1、图象求反
2、对比度拉伸
3、动态范围压缩
4、灰度级切片
直方图
总述
灰度直方图(histogram)统计了图象中各个灰度级的象素的个数。
计算
若图象具有L级灰度(通常L=256,即8位灰度级),则大小为m*n的灰度图象f(x,Y)的灰度直方图H[k],k=0…L-1,可按如下步骤计算获得:
1)初始化:for(k=0;k
H[k]=0;
2)统计:
for(x=0;x
for(y=0;y
H[f(x,y)]++;
3)规格化:
for(x=0;x
for(y=0;y
H(f(x,y))/=float(m(n));
直方图均衡化
直方图均衡化是通过灰度变换将一幅图象转换为另一幅具有均衡化的直方图,即在每个灰度级上都具有相同的象素点数的过程。
直方图均衡化变换:设灰度变换s=f(r)为斜率有限的非减连续可微函数,它将输入图象Ii(x,y)转换为输出图象Io(x,y),输入图象的直方图为Hi(r),输出图象的直方图为Ho(s),则根据直方图的含义,经过灰度变换后对应的小面积元相等:Ho(s)ds=Hi(r)dr
变换函数f(r)必须满足下列2个条件:
(1)f(r) (O(r(1)是单值函数、且单调增加;
(2)O(f(r) (1,(O(r(1)。
上面第一个条件保证了灰度级从黑到白的次序,第二个条件保证了变换后象素的灰度级仍然在容许的范围之内。r=f-l(s)为逆变换函数,同样也要满足上述条件。
直方图修正的例子
假设有一幅图像,共有6 4(6 4个象素,8个灰度级),试进行直方图均衡化处理。根据公式可得:
s2=0.19+0.25+0.2l=0.65,
s3=0.19+0.25+0.2l+0.16=0.8l,
s4=0.89,s5=0.95,s6=0.98,s7=1.00。
由于这里只取8个等间距的灰度级,变换后的s值也只能选择最靠近的一个灰度级的值。因此,根据上述计算值可近似地选取:
sO"1/7,s 1¨3/7,s2¨5/7,s3"6/7,
s4¨6/7,s5¨1,s6¨l,s7¨1。
可见,新图像将只有5个不同的灰度等级,于是我们可以重新定义其符号:
s'O=l/7,s’1=3/7,s'2=5/7,s’3=6/7,s’4=l。
因为由rO=O经变换映射到sO=1/7,所以有n0=790个象素取sO这个灰度值;由rl=3/7映射到sl=3/7,所以有1 02 3个象素取s 1这一灰度值;依次类推,有850个象素取s2=5/7这一灰度值;由于r3和r4均映射到s3=6/7这一灰度值,所以有656+329=98 5个象素都取这一灰度值;同理,有245+1 22+81=448个象素都取s4=1这一灰度值。上述值除以n=4096,便可以得到新的直方图。离散情况下不可能作到绝对的一致。