如何从这些彩色图像中提取文本?

时间:2019-05-28 10:50:49

标签: python opencv image-processing tesseract text-recognition

我想从图像中提取标签上的文本。图像是彩色的,并且处于现实环境中。 PFA图片。 Sample Image

我尝试了多种解决方案:

  1. 我能够使用Tesseract从平面图像中读取文本,但是如果文本处于特定角度,则无法正常工作。
  2. 尝试了大量图像预处理,将其转换为二进制和灰度,但无法提取所需的文本。
  3. 由于上述步骤失败,所以我也无法使文本倾斜。
    image = cv2.imread("p18-73.png",0)
    thresh = cv2.adaptiveThreshold(image,255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 11,2)
    coords = np.column_stack(np.where(thresh > 0))
    angle = cv2.minAreaRect(coords)[-1]

上面的预处理代码不起作用。您能告诉我什么是处理此图像的最佳方法吗?

1 个答案:

答案 0 :(得分:0)

您是否检查了cv2.adaptiveThreshold()的结果? cv2.adaptiveThreshold()的结果如下:

Adaptive Threshold Result

我认为这不是您想要的。 尝试使用全局阈值cv2.threshold(),并调整阈值。

ret, thresh = cv2.threshold(image, 240, 255, cv2.THRESH_BINARY)

Global Threshold Result

此外,您可以添加cv2.morphologyEx()来消除噪声。

kernel = np.ones((2,2),np.uint8)
thresh = cv2.morphologyEx(thresh, cv2.MORPH_OPEN, kernel)