paddleocr是百度飞桨开源的轻量级文本识别模型,支持中英文,支持倾斜、竖排等多种方向文字识别
#!/usr/bin/python3
#!coding:utf-8
import cv2
from paddleocr import PaddleOCR
class 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 text
if __name__ == '__main__':
recognizer = TextRecognizer()
Key_Esc = 27
cap = 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()