文本检测:获取边界框

Mat*_*aro 4 opencv image-segmentation python-3.x

我有一个黑白图像,一个文本文档。我希望能够获得每个字符的边界框列表。我本人尝试过一种算法,但是它花费的时间过长,而且仅取得了一定的成功。有什么我可以用来找到边界框的python库吗?我一直在研究opencv,但是文档很难遵循。在本教程中,我什至无法破译是否找到了边界框,因为我无法轻易找到函数的实际作用。

Ish*_*awa 7

您可以使用boundingRect()。确保图像背景为黑色,图像中的文本为白色。使用此代码,您可以在图像中的文本周围绘制矩形。要获取每个矩形的列表,请根据您的要求添加相应的代码段。

import cv2
img = cv2.imread('input.png', 0) 
cv2.threshold(img,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU,img)

image, contours, hier = cv2.findContours(img, cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_NONE)
for c in contours:
    # get the bounding rect
    x, y, w, h = cv2.boundingRect(c)
    # draw a white rectangle to visualize the bounding rect
    cv2.rectangle(img, (x, y), (x + w, y + h), 255, 1)

cv2.drawContours(img, contours, -1, (255, 255, 0), 1)

cv2.imwrite("output.png",img)
Run Code Online (Sandbox Code Playgroud)