前言
在本次项目中希望使用ocr来实现对图片的识别,我选择的是开源的Tesseract-OCR。
一、简介
OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程;即,针对印刷体字符,采用光学的方式将纸质文档中的文字转换成为黑白点阵的图像文件,并通过识别软件将图像中的文字转换成文本格式,供文字处理软件进一步编辑加工的技术。
Tesseract是一个著名的ocr开源项目,最初由惠普实验室支持,1996年被移植到Windows上,1998年进行了C++化。在2005年Tesseract由惠普公司宣布开源。2006年到现在,都由Google公司开发。
二、使用步骤
1.安装配置
获取资源的地址并参考:tesseract-ocr的安装及使用
安装完成后需要配置环境变量,将安装路径添加到系统变量的path中:
并新增一个变量名TESSDATA_PREFIX,变量值为安装路径的tessdata子目录:
在命令行中键入tesseract -v命令检验是否安装成功并配置好环境变量:
tesseract --list-langs是用来查看支持的语言的,可以按需下载,其中chi_sim便是简体中文。
2.测试使用
通过命令行使用:
键入命令,选择一个测试图片,返回一个txt文件,输出读取到的内容:
简单的、无符号的图片的提取还是很准确的。
后来尝试提取一个图片中的c++代码,发现准确度就下降了,很多符号无法正确识别:
出现了很多问题,如识别不了各种符号,数字识别错误,格式被破坏等。
总结
tesseract-ocr的功能还是十分强大的,识别的准确度也比较高,应该足以从图片中提取代码。下一步的目标是想办法提高tesseract识别代码的准确度,以及通过api对其进行调用。