一、安装
macOS 上安装依赖。
brew install tesseract
二、下载训练数据
找到 chi_sim.traineddata 这个文件,下载到本地。
注:用迅雷有加速会比原站快很多。
三、Python 代码
因为代码识别出来的每个中文之间都有空格,所以用‘’把空格全部替换。但是之后发现,这个处理流程不适合英文识别。
创建了tessdata目录,存储chi_sim.traineddata文件。
from PIL import Image
import pytesseract
import sys
class Languages:
CHS = 'chi_sim'
CHT = 'chi_tra'
ENG = 'eng'
def img_to_str(image_path, lang=Languages.ENG):
tessdata_dir_config = r'--tessdata-dir ''./tessdata/'''
return pytesseract.image_to_string(Image.open(image_path), lang, config=tessdata_dir_config)
def main():
if ( 2 > len(sys.argv)) :
print("input png file")
return -1
ocr_str = img_to_str(sys.argv[1], lang=Languages.CHS)
ocr_str_new = ocr_str.replace(' ', '')
f = open(sys.argv[1]+".txt", "w+")
f.write(ocr_str_new)
f.close()
if __name__ == '__main__':
main()
这个样本错误比较少。文字中的标点符号有全角和半角不一致的问题。
现年64岁的德国总理默克尔以能干著称。
自2005年上任以来,她已在总理的岗位上连续工作了14年。在国际金融危机、欧债危机、难民危机等一系列变故中,默克尔带领德国乃至欧洲一路向前,虽有波折,但方寸不乱。
OCR识别这段文字出错就比较多。
据悉,GalaxyNote10将采用打孔屏幕,后置三摄,下方有激光自动对焦传感器和LED闪光灯;机身尺寸为77.6亮米(宽)x162.5毫米(长)x170.1埕米。
另外,三星将于美国东部时间8月7日下午4点(北京时间8月8日凌晨4点)在纽约布鲁克林的巴克莱中心正式发布GalaxyNote10手机,让我们拭目以待。
四、总结
因为部分网站不支持网页另存为文本,所以用 OCR 识别可以代替打字录入。这个 OCR 识别库在使用上非常简单,识别率也在可接受范围之内。