【发布时间】: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