将 Google Cloud Vision OCR X 和 Y 坐标转换为 bbox 坐标

Posted

技术标签:

【中文标题】将 Google Cloud Vision OCR X 和 Y 坐标转换为 bbox 坐标【英文标题】:Converting Google Cloud Vision OCR X and Y Co-ordinates to bbox Co-ordinates 【发布时间】:2022-01-20 02:23:36 【问题描述】:

Google Cloud Vision OCR 具有以下边界框对象的输出。

vertices 
  x: 786
  y: 967

边界框所需的输出格式

我想继续将这些坐标转换为边界框坐标,以将它们写入我的 hOCR 格式。 其中包括以下格式,用于将这些格式写入文件。

  <span class='ocr_line' title="bbox 348 797 1482 838; baseline -0.009 -6">

有问题吗?

那么如何将这些 x 和 y 坐标转换为这些 bbox(边界框坐标)。 xy 的坐标是什么,是 (x_min, y_max) 还是 (x_max, y_min)。一般来说,我还想知道这些 x 和 y 代表什么?

处理图像

我正在处理以下图像作为我的测试。

【问题讨论】:

两个值不是一个框,它们是一个。你没有足够的信息来制作一个盒子。 【参考方案1】:

@Christoph Rackwitz 在评论中告知,这个值只是一个点。每个字母将由一组 4 个点表示,创建一个 bbox,如下所示:


          "description": "وأما",
          "boundingPoly": 
            "vertices": [
              
                "x": 1088,
                "y": 230
              ,
              
                "x": 1145,
                "y": 230
              ,
              
                "x": 1145,
                "y": 289
              ,
              
                "x": 1088,
                "y": 289
              
            ]
          
        ,

整个Page会在第一个对象上,如下:

        
          "locale": "ar",
          "description": "وأما ثانيا : فلأنه يخرج منه من زنی مثلا ثم جب ذكرة فإنه\nلا يتأتی\nمنه غير الندم على ما مضی ، وأما العزم على عدم\nقال : إن الندم\nيكفي في حد التوبة ، وليس كما قال ؛ لانه لو ندم ولم يقلع\nوعزم على العود لم يكن تائبا اتفاقا ، قال : وقال بعض المحق قين :\nاختيار ترك ذنب سبق حقيقة. أو تقديرا لأجل ال له قال :\nالعود فلا يتصور منه ، قال : وبهذا اغتر من\nهي\nوهذا أسد العبارات وأجمعها لأن التائب لا يكون تار کا\nل لذنب الذي فرغ لأنه غير متمكن من عينه لا تركا ولا فعلا ،\nمثله حقيقة ، وكذا من لم يقع منه ذنب\nمتمكن\nوإنما هو\nمن\nإنما يصح منه اتقاء ما يمكن أن يقع لا ترك مثل ما وقع فيكون\nمتقيا لا تائبا ، قال : والباعث على هذا تنبيه إلهي لمن أراد\nمهلك يفوث على\nلأنه\nسم\nسعادته لقبح الذنب وضر ره ؛\nالإنسان سعادة الدنيا والآخرة ويحجبة عن معرفة ال له. تعالي في\nالدنيا ، وعن تقريبه في الآخرة\nقال : ومن تفقد نفسه وجدها مشحونة بهذا السم فإذا وفق\nانبعث منه خوف هجوم الهلاك عليه ، فيبادر بطلب ما يدفع\n",
          "boundingPoly": 
            "vertices": [
              
                "x": 122,
                "y": 223
              ,
              
                "x": 1197,
                "y": 223
              ,
              
                "x": 1197,
                "y": 1688
              ,
              
                "x": 122,
                "y": 1688
              
            ]
          
        ,
您可以处理带有4个点的json来生成您需要的对象。 检查this page,您可以在其中试用 API。我已经使用堆栈溢出上传的图像url作为图像源(即"imageUri": "https://i.stack.imgur.com/9MXec.jpg"

【讨论】:

您如何继续将 google cloud vision python api 响应转换为像这样的 json 响应?我的脚本代码是gist.github.com/UBISOFT-1/f00e4d22790f4af378d70b237fa56ca9检查函数detect_text_document 看看this repo,这里是这个转换的代码。它可能会解决这个问题。

以上是关于将 Google Cloud Vision OCR X 和 Y 坐标转换为 bbox 坐标的主要内容,如果未能解决你的问题,请参考以下文章

Google Cloud Vision - 数字和数字 OCR

Google Cloud Vision Document OCR - 在结果文本中保留布局

Google Cloud Vision OCR 错误代码 7 - 权限被拒绝

KeyError:使用 Google Cloud Vision API 进行 OCR 时出现“textAnnotations”

Google Cloud Vision OCR 遗漏了单个数字和符号

google vision - 在 c# 中从 google.cloud.vision.v1.entity 注释转换为 json