在图像中的文本周围放置边界框

时间:2016-10-13 11:07:13

标签: python opencv image-processing

我想比较两个包含文字的截图。基本上两个截图都包含一些非常格式化的文本。我想比较两个图片中是否反映相同的格式以及两个图像中同一位置出现的相同文本。

我现在如何做 -

  1. 应用双边过滤器以删除文字下划线。
  2. 应用值为180的阈值作为最小值并清除它们
  3. 在图像上应用高斯模糊以移除字符之间未填充的空格。
  4. 再次应用阈值,值250为最小值。
  5. 计算图像中的轮廓
  6. 在轮廓周围绘制矩形边界框
  7. 使用O(n ^ 2)算法找出最大重叠矩形并比较其中的文本。
  8. 然而问题是两个图像中出现的轮廓是不同的,即其中一个轮廓的图像数量是38,而另一个包含53.我想有一个通用的解决方案并且不想依赖于图像内容。但有一点可以肯定的是,图像包含格式正确的文本。

    由于

1 个答案:

答案 0 :(得分:0)

我不确定你究竟想要什么,但是为了获得图像中的单词边框,我可以这样做:

  1. 应用处理以获得良好的阈值:仅文本,黑色背景,白色文本。此步骤取决于图像的类型和质量。
  2. 计算每一行的总和。总和应该与0不同,其中有文本,并且每行之间的空间中的所有行都应为空(如果存在某些噪声,则可以在此值上设置阈值)。您可以找到每个文本行的顶部/底部行
  3. 对于步骤2中找到的每个文本行,计算每列的总和。与第二步相同,带有单词的列应与0不同。您可以找到单词和字母之间的所有空格。删除所有太小的空格,使其不能成为两个单词之间的空格。
  4. 祝贺您拥有每个单词的上/下行和第一列/最后一列。