字符分割不适用于3,8

时间:2018-05-06 07:53:47

标签: python opencv image-processing

我是图像处理的新手。我想在OCR中执行字符分割。我已经做了必要的预处理。当我通过查找轮廓来执行角色分割时,除了角色3,8之外,它的效果很好。

预处理后的图像看起来像这样,

pre processed image

找到3和8轮廓后的输出

enter image description here

enter image description here

使用的代码:

imgGray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
ret, imgThresh = cv2.threshold(imgGray, 127, 255, 0)
image, contours , _ = cv2.findContours(imgThresh, cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_NONE)

但它为其他角色提供了良好的结果:

enter image description here

enter image description here

enter image description here

如何解决这个问题?

1 个答案:

答案 0 :(得分:4)

由于您的图片不涉及任何复杂的背景,我使用Otsu的方法为我选择合适的门槛:

threshold, thresh_img = cv2.threshold(imgGray, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)

enter image description here

现在,当您找到轮廓时,它会更容易。这是因为找到了白色的物体或字符的轮廓。

enter image description here

现在看看那些导致问题的角色:

enter image description here

enter image description here