使用多线程开启OCR

需求:经过opencv 或者其他算法对一张图片里面的文字内容进行切割,获取到切割内容的坐标信息,再使用ocr进行识别。一张一张识别太慢了,我们可以开启多线程识别。代码如下

 1     threads = []   
 2     for coord in coord_list:    # 获取到的坐标列表进行遍历,一个元素一个矩形
 3         recv_thread = threading.Thread(target=ocr_discern, args=(coord, im,))   # ocr_discern为进行ocr识别的方法,参数coord为坐标, im为整张图片的二维数组
 4         threads.append(recv_thread)    # 把创建的线程放到列表中
 5     for t in threads:    # 开启线程守护
 6         t.setDaemon(True)
 7         t.start()
 8     for t in threads:
 9         t.join()   # 让主线程等待所有子线程结束,再返回结果
10     print(text_coord_list)    # text_coord_list为识别结果,在ocr_discern函数中,将识别结果及对应的坐标关系,放到text_coord_list中。
11     print('elapsed time:', time.time() - time1)

 

posted @ 2019-08-19 10:51  wanglai  阅读(761)  评论(0编辑  收藏  举报