【问题标题】:Extract bounding Boxes from an Image Paddleocr从图像 Paddleocr 中提取边界框
【发布时间】:2022-08-16 23:38:24
【问题描述】:

我使用此代码检测所有文本并绘制​​所有边界框:

from paddleocr import PaddleOCR,draw_ocr
ocr = PaddleOCR(lang=\'en\') # need to run only once to download and load model into memory
img_path = \'PaddleOCR/doc/imgs_en/img_12.jpg\'
result = ocr.ocr(img_path, cls=False)
for line in result:
    print(line)

# draw result
from PIL import Image
image = Image.open(img_path).convert(\'RGB\')
boxes = [line[0] for line in result]
txts = [line[1][0] for line in result]
scores = [line[1][1] for line in result]
im_show = draw_ocr(image, boxes, txts, scores, font_path=\'/path/to/PaddleOCR/doc/fonts/simfang.ttf\')
im_show = Image.fromarray(im_show)
im_show.save(\'result.jpg\')

现在我有一个包含所有检测到的边界框的图像。 我想分离所有的边界框,以便我可以使用 pytesseract 从它们中提取信息。 我想这样做是因为 paddleocr 更适合检测,但 Pytesserat 更适合提取(德语)。 那么我怎样才能分离所有的边界框来从它们中提取文本呢? 谢谢

  • 所以你已经有了这些矩形,包括里面的字符。然后通过裁剪每个矩形创建一个 sub-Mat 并逐个应用 Pytesseract
  • 谢谢您的回答。这是我使用 paddle ocr 获得的坐标:[[338.0, 487.0], [414.0, 487.0], [414.0, 527.0], [338.0, 527.0]] [[335.0, 439.0], [431.0, 439.0], [431.0, 484.0], [335.0, 484.0]] 那么你能告诉我如何使用它们来裁剪矩形吗?
  • 类似于 cropped_image = img[80:280, 150:330]

标签: python opencv tesseract paddle-paddle


【解决方案1】:

每个检测框内四个点的顺序为左上、右上、右下、左下。

由于PP-OCR中的检测算法是逐行检测的,如果想从检测框坐标中得到每个单词的具体坐标,难度会更大。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-20
    • 2020-12-31
    • 2014-12-24
    • 2018-02-10
    • 2021-04-16
    • 1970-01-01
    • 2012-12-02
    • 2019-05-11
    相关资源
    最近更新 更多