paddleocr是百度飞桨开源的轻量级文本识别模型,支持中英文,支持倾斜、竖排等多种方向文字识别
#!/usr/bin/python3#!coding:utf-8import cv2from paddleocr import PaddleOCRclass TextRecognizer(object):def __init__(self):self.roi = [(120, 120), (360, 240)]# 支持 `ch`, `en`, `fr`, `german`, `korean`, `japan`# --use_angle_cls true设置使用方向分类器识别180度旋转文字self.ocr = PaddleOCR(use_angle_cls=False, lang='ch')def detect(self, image, lang=None):img = image[self.roi[0][1]:self.roi[1][1],self.roi[0][0]:self.roi[1][0]]result = self.ocr.ocr(image, cls=False)print(result)text = ''for line in result:text = text+line[1][0]+' 'return textif __name__ == '__main__':recognizer = TextRecognizer()Key_Esc = 27cap = cv2.VideoCapture(0)if not cap.isOpened():print("Cannot open camera")exit()cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)while True:# 逐帧捕获ret, frame = cap.read()# 显示原图或灰度图cv2.imshow('frame', np.rot90(cv2.resize(frame, (320, 240))))# cv2.imshow('gray', np.rot90(cv2.resize(gray,(320,240))))# 按Esc键退出,不加这一句可能无法正常显示图像if cv2.waitKey(1) == Key_Esc:break# 完成所有操作后,释放捕获器cap.release()cv2.destroyAllWindows()
