在对打印文本进行行分割时将行分组在一起

时间:2016-12-20 05:33:28

标签: matlab image-processing computer-vision image-segmentation text-extraction

我一直试图从打印的文本文档中分割行。我遵循了以下文件:

基于Hough变换的文本分割技术Satadal Saha,Subhadip Basu,Mita Nasipuri和Dipa​​k Kr。巴苏

根据论文,我使用Hough变换在文本上生成直线并限制90度附近的角度和连通分量算法将生成的直线分组以从文本中分离出行。

霍夫变换输出如下:

Hough transform output

但是,生成的直线有时会在两个文本行之间重叠,并且多个线段会组合在一起。

文本中的行边界框如下:

bounding box image of line segments of text

有人可以帮助我避免将这些文字组合在一起吗?请建议一种方法,以便连接组件分析将文本行视为单独的组件。

1 个答案:

答案 0 :(得分:2)

您正在使用连接组件将hough-line分组为文本行。这个过程非常对噪声敏感:即使一个误检测的像素也可以将两条线组合在一起 如果您查看图像中每行的平均“开启”像素,则可以使此过程更加稳健:

bw = imread('http://i.stack.imgur.com/tg2xN.png');
bw=bw>100;
figure; plot( mean(bw,2) ); xlabel('image row'); ylabel('#"on" pixels');

enter image description here

红线显示每行“开”像素数的7.5%阈值。正如您所看到的,它可以帮助区分连接良好的hough-lines与错误连接的hough-lines 使用此阈值修改掩码:

msk = bsxfun(@times, bw, mean(bw,2)>0.075);

现在你可以得到合适的边界框

bb=regionprops(bwlabel(msk,8),'BoundingBox');

结果:

enter image description here