0

所以这里有一个问题和疑问:

我正在分析 HTML5 Canvas 上的文档页面并检测某些功能,例如框、标签、文本块、图像、表格等。因为 Canvas 的像素读/写速度很慢,并且图像需要永远是高分辨率的精度例如:1500 x 2500,我无法分析每个像素,更不用说多次通过了。

我的算法做了一些随机像素戳,并做了一些最小的分析,以查找是否有可用的边界框进行进一步处理以及需要完成的处理类型;某些部分可能会发送到服务器,例如 OCR。

随后的每一次随机戳都会检查越来越多的成功找到的边界框,然后戳到其他地方,直到进入未知水域。该技术出奇地简单和有效,但这会导致大量额外的随机戳,并且如果没有大量戳数(1% 的区域)就无法提供一致的结果,即使这样它也会间歇性地遗漏一些部分。

最好是实现一些空间分析算法,它可以告诉我未戳区域在所有边界框之外的位置,这样我就可以将我的 x/y 随机坐标选择限制在那里。它应该会显着提高功效和速度。

我对完整分析的文档页面的典型框数是 < 200。

公共领域/维基中是否存在任何可以在 JavaScript 中相当快地做到这一点的算法?

4

1 回答 1

1

我希望可能会有所帮助的一些想法。一个广泛的想法,它仍然需要一些工作!

假设没有边界框重叠并且一次找到一个。

以下将变成对文档的递归过程“检查”,当文档太小而无法继续时,该过程会停止。

检查(文件)

如果(文档是根文档){

在文档中查找边界框

将文档水平拆分为 4 个新文档

对于每个新文档检查(新文档)

}

别的 {

在文档中查找边界框

if(边界框完全在文档内){

将文档水平拆分为 4 个新文档

对于每个新文档检查(新文档)

}

别的 {

将父文档垂直拆分为 4

使用找到的关于边界框位置的信息

检查(适当的垂直文件)

对于其他每个垂直文档检查(文档)

}

以下是一个 pdf 文件来帮助说明这个想法。

边界框

于 2012-04-26T20:05:32.337 回答