gpt4 book ai didi

objective-c - OpenCV 文本 block 检测

转载 作者:行者123 更新时间:2023-12-02 16:49:51 25 4
gpt4 key购买 nike

我需要使用 OpenCV 来检测图像中的所有文本 block ,以准备将它们发送到 OCR。
从我对 OpenCV 的有限知识来看,这是我可能的解决方案之一,但是我不确定如何将其变成真正的解决方案。

  • 使用 findContours 检测字符的轮廓
  • 使用层次结构过滤字符
  • 将边界矩形放在过滤区域
  • 将边界矩形分组以包含文本 block

  • 这行得通吗?如果是这样,我该如何“执行”这个?扫描可能有多个文本 block ,我在 iOS 上执行此操作。

    这适用于名片之类的东西吗?那可能每个角落都有文字 block ?我只需要扫描文本并将组/ block 一起扫描。

    最佳答案

    我最近使用以下方法来提取文本 blob:

  • 使用 MSER 算法检测关键点。我发现它对查找字母很有用。
  • (可选)过滤掉“小”和“非常大”的(大小属性)。
  • 将关键点分组为相邻字母的组 - 由启发式定义的邻接性,即两个关键点必须具有相似的大小并且靠近(相对于它们的大小的距离)。
  • 取每个组的边界框,这是一个候选词或字符 block 。
  • 将其发送到 OCR(我使用 Tesseract OCR 库取得了不错的效果)。

  • 以上对于干净背景上的文本效果很好,但是如果还有很多非文本艺术品,它确实会检测到非文本 Blob ,因为唯一的预 OCR 过滤是“相似大小和附近”指标。

    如果您正在扫描名片,它可能就足够了。

    您将需要为您的域校准“附近”和类似大小的启发式方法。

    对于“相似大小”,我使用了 3/5 和 5/3 之间的关键点大小比率,“附近”定义为关键点之间的距离小于两者中最小关键点大小的 7/4 倍。

    在自然图像中,您需要更稳健的方法。为此,我可以推荐以下论文:

    Robust Text Detection in Natural Images with MSER

    关于objective-c - OpenCV 文本 block 检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21558848/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com