如何从图像中提取虚线文本?

保罗·萨博

我正在攻读学士学位的最终项目,我想创建一个OCR以使用python进行瓶检查。我需要一些有关图像识别中的帮助。我是否需要以更好的方式应用cv2操作,训练tesseract还是应该尝试其他方法?

我尝试对图像进行图像处理操作,并使用pytesseract识别字符。

使用下面这张照片提供的代码:

在此处输入图片说明

对此:

在此处输入图片说明

然后到这个:

在此处输入图片说明

锐化功能:

def sharpen(img):
  sharpen = iaa.Sharpen(alpha=1.0, lightness = 1.0)
  sharpen_img = sharpen.augment_image(img)
  return sharpen_img

图像处理代码:

textZone = cv2.pyrUp(sharpen(originalImage[y:y + h - 1, x:x + w - 1])) #text zone cropped from the original image

sharp = cv2.cvtColor(textZone, cv2.COLOR_BGR2GRAY)
ret, thresh = cv2.threshold(sharp, 127, 255, cv2.THRESH_BINARY)

#the functions such as opening are inverted (I don't know why) that's why I did opening with MORPH_CLOSE parameter, dilatation with erode and so on

kernel_open = cv2.getStructuringElement(cv2.MORPH_RECT, (3, 3))
open = cv2.morphologyEx(thresh, cv2.MORPH_CLOSE, kernel_open)

kernel_dilate = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(5,7))
dilate = cv2.erode(open,kernel_dilate)

kernel_close = cv2.getStructuringElement(cv2.MORPH_RECT, (1, 5))
close = cv2.morphologyEx(dilate, cv2.MORPH_OPEN, kernel_close)

print(pytesseract.image_to_string(close))

这是pytesseract.image_to_string的结果:

22203;?!)

92:53 a

预期结果是:

22/03/20

02:53 A
戴夫·史密斯

“我是否需要以更好的方式应用cv2操作,训练tesseract还是应该尝试其他方法?”

首先,为完成这个项目并达到目标而声名狼藉。从OpenCV / cv2的角度来看,您所拥有的一切看起来都不错。

现在,如果您想让Tesseract承担其余的整个过程,那么至少您必须对其进行培训。在这里,您有一个艰难的选择:投资于培训Tesseract,或编制CNN以识别有限的字母。如果您有一种分割图像的方法,我很想选择后者。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章