gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 20:33:06 25 4
gpt4 key购买 nike

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

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

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

霍夫变换输出如下:

Hough transform output

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

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

bounding box image of line segments of text

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

最佳答案

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

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% 阈值。如您所见,它可以帮助区分连接良好的霍夫线和错误连接的霍夫线。
使用此阈值修改掩码:

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

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

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

结果:

enter image description here

关于matlab - 在对打印文本进行行分割时将行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41235519/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com