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

Converting Google Cloud Vision OCR X and Y Co-ordinates to bbox Co-ordinates

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

vertices {
  x: 786
  y: 967
}

边界框所需的输出格式

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

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

有问题吗?

处理图像

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

正如@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"