【问题标题】:Taking parts of one image to create another image拍摄一张图像的一部分以创建另一张图像
【发布时间】:2013-03-22 02:54:49
【问题描述】:

我正在处理我想从中取出部分并制作一张新图像的图像。我可以使用 ImageMagick 或 OpenCV。这是一个示例图像:

我想从这张图片中取出标题、两个带注释的文本(一个在圆圈中,一个在矩形中),以及底部的文本。

因此,最终图像将具有:图像标题、带注释的文本 1、带注释的文本,这是一些测试。图像的这些部分不必在新图像中以任何特定顺序排列。

问题

  • 我可以使用什么样的策略来做到这一点?
  • hough 或 canny 会帮忙吗?
  • 我在想,由于我想要返回的图像部分都是文本,也许霍夫线可以检测到直线,然后我将图像的这些部分裁剪掉......
  • 我的主要目标是提取文本,以便将其发送到 OCR

我试图侵蚀图像并想出了这个:

我的策略

以下是我的策略,即只保留部分图像具有白色背景和文本。但是,我不确定这是否适用于 OpenCV...

图像中会有不同的 ROI

  • 图像顶部总是有白色背景,我们称之为空间标题。所以我裁剪了图像顶部的矩形部分并将其另存为单独的图像
  • 图像底部总会有白色背景,我们称之为body。所以我把图片底部的矩形部分裁剪出来,另存为单独的图片
  • 图像顶部会有一些文字,我们称之为带注释的文字。这将是正方形或圆形。我可以使用this answer 中提到的技术来裁剪图像的这些部分并将它们保存为单独的图像。

【问题讨论】:

  • 为什么不按原样在图像上使用 OCR?文本已经很干净并且在白色背景上。
  • 这是一个示例图像。在其他某些图像中,文本非常接近正方形和圆形。在这些情况下,我只能阅读图像下方的标题和文本,而不是带注释的文本。为了获得更好的成功率,我希望能够取出图像的一部分并将它们提供给 OCR 或对图像进行预处理,这样除了文本之外什么都不会留在图像中
  • 文本检测通常是管道中的机器学习阶段。如果您知道字体类型和/或大小的限制,那么也许使用滑动窗口技术在已知示例上训练 SVM 将是一个起点。 OpenCV 有很多 ML 示例,其中不包括 OCR 吗?
  • 我看到了其中的一些研究论文,但大多数都是检测自然文本。我的图像中的文本总是很直接,因为总是有人将文本添加到现有图像中。我正在用我的策略更新问题。

标签: c++ python opencv image-processing imagemagick


【解决方案1】:

如果您只处理外观相似的字体,而不是寻找超级高效的字体,您可以简单地对字母表中的每个字母(26 大字和 26 字小字)执行相关性。对峰值进行阈值化并将它们加在一起。然后,您可以在峰周围定义边界框。

【讨论】:

    猜你喜欢
    • 2011-05-21
    • 1970-01-01
    • 2020-04-30
    • 1970-01-01
    • 2013-09-04
    • 2016-11-23
    • 1970-01-01
    • 1970-01-01
    • 2014-07-07
    相关资源
    最近更新 更多