一、极值区域
极值区域(Extremal Region)是指图片中一片相似区域的集合,此集合内所有的像素值都与外界的像素值存在着较大的差距。可以理解为区域外边界的像素值严格大于区域内像素值的区域。
极值区域在数学上的定义,首先将图像I视为一种映射:
图像I的的一个通道C的映射就可以理解为:
A表示一种邻接关系,长为D,宽为D区域内的像素是邻接的,这样就可以把图像I或者通道C中的区域R,理解为一个D的连续子集,其中pAq,表示p与q邻接:
即R中的任意两个不同的像素,一定可以找到一条凉凉邻接的像素序列将其连接起来。
∂ R:表示区域外边界,是与区域R相邻接但不属于R的像素集合:
极值区域ER是指区域外边界的像素值严格大于区域内像素值的区域:
其中θ表示ER的阈值。
上述内容参考博客。
极值区域计算的算法:
关于极值区域的计算,我们首先可以将图像形象地理解为高低起伏的地形图,其中灰度值就是海拔高度,最稳定极值区域的求解
就是在复杂的地形中找出符合条件的盆地,例如要求盆地的海拔低于多少,即该区域的灰度值为多少,盆地的边界的倾斜程度大
小等等。根据刚刚的比喻,我们就可以将算法的过程理解为向这个复杂地形中灌水的过程,其中水面的最高值就是8位图像像素
值最大的255,最低就是0。对于同一片区域中,水可以流到的区域是其领域中像素值更低的区域,也可以对水的流向提出其他
要求;水流不到的地方就是非极值区域,其实可以理解为一种局部像素的二值化算法,与普通的阈值二值化区别在于其对于局部
区域内的变化处理起来更加灵活。
二、连通区域
对于二值图像来说,直观上连接这个区域,即彼此连接着的点构成的区域称为连通区域。
连通区域的计算:
连通区域标记算法有很多种,有的算法可以一次遍历图像完成标记,有的则需要2次或更多次遍历图像。这也就造成了不同的算法时间效率的差别,在这里我们介绍我们采用的一种高效率方法,只便利一遍图片。
一次遍历图像,并记下每一行(或列)中连续的团和标记的等价对,然后通过等价对对原来的图像进行重新标记,消除重叠的等价对部分得到不同区域的连通区域。
如图中,第一行的第二到六个像素作为一个连续的团,则得到等价对(2,6)标记为1,同理对价对(10,13)标记为2,再便利第二行,(6,7)等价对和标记为1的等价对有重叠的部分则同样标记为1。
三、图片中文本区域的定位
对于清晰图片中的文本区域中单个的文字可以理解为图片中的极值区域,同时一副图片中也有不少会跟文字产生混淆的噪声信息,也符合极值区域的特征。
我们选取一张图片
我们要在这张图片上提取的内容是STARBUCKS COFFEE
我们首先求这张图片上符合阈值差异条件的极值区域
用色块和椭圆形标记出来
在图中我们可以发现属于文本区域的极值区域特征,每个独立的字母都是一块极值区域,每块色块具体表示了这一部分的极值区域,多个极值区域可以相互包含。根据字符的宽高比等其他相关特征,我们可以从连通的极值区域中筛选出符合单个字符条件的极值区域
可以看出仍然有很多噪声,我们再根据文本的特征,即由连续的字符构成,可以对字符做横向的闭操作,即可得到
再从中得到符合宽高比要求的连通区域,得到最终结果: