xcode+tesseract 搭建一个简单的图像文字识别程序

来源:互联网 发布:人工智能的未来 pdf 编辑:程序博客网 时间:2024/06/03 16:07

获取tesseract

作为开源项目,tesseract的官方资源可以从GitHub上面得到。阅读readme文件可以解决大部分初步使用者的疑问。
tesseract在GitHub上的链接:https://github.com/tesseract-ocr/tesseract

使用homebrew安装tesseract:

brew install tesseract

安装好后,在终端输入tesseract会出现帮助文档。

查看装好的语言库:

tesseract --list-langs

可以看见只有英语(eng),于是我又装了简体中文(chi_sim)。在https://github.com/tesseract-ocr/tessdata中下载chi_sim.traineddate,放在tesseract的目录(/usr/local/Cellar/tesseract/3.05.01/share/tessdata)下。

现在来测试一下,使用本页的截图:
这里写图片描述
在终端输入命令:

tesseract 获取tesseract.png out -l eng+chi_sim

得到的结果:
这里写图片描述
好像也并没有特别准 -_-!

在Xcode中配置

说实话是第一次用Xcode,于是浪费了很多时间在熟悉ide上面,不过最终还是纯野生地搞定了。

tesseract自带对C/C++的API,于是第一个程序我就选择了用C++写。官方的使用手册在http://tesseract-ocr.github.io。

发现了比较简单的添加lib文件的办法。首先将lib直接拖拽到project的framework中:

这里调用的是/usr/local/Cellar/tesseract/3.05.01/lib/libtesseract.dylib。这时候库文件的路径已经自动导入了,还需要再添加一个头文件的搜索路径。在header search paths里面添加一项/usr/local/Cellar/tesseract/3.05.01/include/tesseract/:
这里写图片描述

第一个程序使用了别人的代码。参考这个网页:http://www.cnblogs.com/cappuccino/p/4650665.html,原博应该是转载的谷歌本身提供的代码样例,但是很遗憾在原博提供的地址上我没有找到所转原文。下面是我使用的代码和运行结果:

#include <iostream>#include <baseapi.h>#include <allheaders.h>int main(){    char *outText;    tesseract::TessBaseAPI *api = new tesseract::TessBaseAPI();    // Initialize tesseract-ocr with English, without specifying tessdata path    if (api->Init(NULL, "eng+chi_sim")) {        fprintf(stderr, "Could not initialize tesseract.\n");        exit(1);    }    // Open input image with leptonica library    Pix *image = pixRead("/Users/mac/Desktop/获取tesseract.png");    api->SetImage(image);    // Get OCR result    outText = api->GetUTF8Text();    printf("OCR output:\n%s", outText);    // Destroy used object and release memory    api->End();    delete [] outText;    pixDestroy(&image);    return 0;}

这里写图片描述

原创粉丝点击