所以这是一个问题和疑问:
我正在分析HTML5 Canvas上的文档页面并检测某些功能,例如框,标签,文本块,图像,表格等。因为Canvas的像素读/写速度很慢而且图像需要很高res具有良好的准确性,例如:1500 x 2500,我无法分析每个像素,更不用说多次传递。
我的算法执行一些随机像素戳并进行一些最小化分析,以查找是否有可用于进一步处理的边界框以及需要完成的处理类型;某些部分可能会被发送到服务器,如OCR。
每次随后的随机戳都会检查成功找到的边界框并在其他地方戳戳,直到它进入未知的水域。该技术非常简单有效,但是这会导致大量额外的随机戳,并且在没有大的戳数(1%面积)的情况下不能提供一致的结果,即便如此,它也会间歇性地错过某些部分。
最棒的是实现一些空间分析算法,可以告诉我未调整区域在所有边界框之外的位置,这样我就可以将我的x / y随机坐标选择限制在那里。它应该大大提高疗效和速度。
完全分析的文档页面的典型盒数是< 200。
公共域/ wiki中是否存在可以合理快速地在JavaScript中执行此操作的算法?
答案 0 :(得分:1)
我希望有些想法可能有所帮助。一个广泛的想法,它仍然需要一些工作!
假设没有边界框重叠并且一次只能找到一个边界框。
以下内容将转变为递归程序'检查'当文件太小而无法继续时停止的文件。
检查(文件)
如果(文档是根文档){
在文档中找到一个边界框
将文档水平拆分为4个新文档
每个新文件检查(新文件)
}
其他{
在文档中找到一个边界框
if(完全在文档中的边界框){
将文档水平拆分为4个新文档
每个新文件检查(新文件)
}
其他{
将父文档拆分为4个垂直
使用有关边界框位置的信息
检查(适当的垂直文件)
每个其他垂直文件检查(文件)
}
以下是一个pdf文件,以帮助说明这个想法。