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

Grouping together of lines while doing line segmentation of printed text

我一直在尝试从打印的文本文档中分割线条。我关注了以下论文:

基于霍夫变换的文本分割技术 Satadal Saha、Subhadip Basu、Mita Nasipuri 和 Dipak Kr。八苏

根据论文,我使用霍夫变换在文本上生成直线并将角度限制在 90 度附近,并使用连通分量算法对生成的直线进行分组以将线与文本分开。

霍夫变换输出如下:

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

文本中各行的边界框如下:

任何人都可以帮助我避免将这些文本行组合在一起吗?请提出一种方法,以便连通分量分析将文本行视为单独的分量。

您正在使用连接组件将您的霍夫线分组为文本行。此过程对噪声非常 敏感:即使是一个错误检测到的像素也会将两条线汇集在一起​​。
如果您查看图像中每行的平均 "on" 像素,您可以使此过程更加稳健:

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

红线显示每行 "on" 像素数的 7.5% 阈值。如您所见,它可以帮助区分连接良好的霍夫线和错误连接的霍夫线。
使用此阈值修改掩码:

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

现在您可以获得合适的边界框

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

结果为: