paddleocr是百度飞桨开源的轻量级文本识别模型,支持中英文,支持倾斜、竖排等多种方向文字识别

    1. #!/usr/bin/python3
    2. #!coding:utf-8
    3. import cv2
    4. from paddleocr import PaddleOCR
    5. class TextRecognizer(object):
    6. def __init__(self):
    7. self.roi = [(120, 120), (360, 240)]
    8. # 支持 `ch`, `en`, `fr`, `german`, `korean`, `japan`
    9. # --use_angle_cls true设置使用方向分类器识别180度旋转文字
    10. self.ocr = PaddleOCR(use_angle_cls=False, lang='ch')
    11. def detect(self, image, lang=None):
    12. img = image[self.roi[0][1]:self.roi[1][1],
    13. self.roi[0][0]:self.roi[1][0]]
    14. result = self.ocr.ocr(image, cls=False)
    15. print(result)
    16. text = ''
    17. for line in result:
    18. text = text+line[1][0]+' '
    19. return text
    20. if __name__ == '__main__':
    21. recognizer = TextRecognizer()
    22. Key_Esc = 27
    23. cap = cv2.VideoCapture(0)
    24. if not cap.isOpened():
    25. print("Cannot open camera")
    26. exit()
    27. cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
    28. cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
    29. while True:
    30. # 逐帧捕获
    31. ret, frame = cap.read()
    32. # 显示原图或灰度图
    33. cv2.imshow('frame', np.rot90(cv2.resize(frame, (320, 240))))
    34. # cv2.imshow('gray', np.rot90(cv2.resize(gray,(320,240))))
    35. # 按Esc键退出,不加这一句可能无法正常显示图像
    36. if cv2.waitKey(1) == Key_Esc:
    37. break
    38. # 完成所有操作后,释放捕获器
    39. cap.release()
    40. cv2.destroyAllWindows()