在我的项目中,我必须从图像(.jpg 或 .tiff)中读取数字。在谷歌上搜索了很多之后,我开始了解开放的 OCR,即 Tesseract OCR。我是 Tesseract OCR 的初学者,我阅读了 tesseract 的所有文档以及如何在 Visual Studio 中使用它。基本上在使用 tesseract 时遇到了一些问题......我按照以下步骤操作:
1) 从http://code.google.com/p/tesseract-ocr/downloads/detail?name=tesseract-ocr-setup-3.02.02.exe下载并安装 tesseract-ocr-setup-3.02.02.exe
2) 打开 Microsoft Visual Studio 2008 并转到工具 -> 选项项目解决方案 -> VC++ 目录 -> 显示包含文件的目录
添加:
C:\Program Files\Tesseract-OCR\include
C:\Program Files\Tesseract-OCR\include\tesseract
C:\Program Files\Tesseract-OCR\include\leptonica
3) 下一步单击显示目录 -> 库文件
添加:C:\Program Files\Tesseract-OCR\lib
4) 为 Tesseract 配置链接器选项
在解决方案资源管理器中右键单击您的项目,然后单击属性
Configuration Properties -> Linker-> Input ->Additional Dependencies
在其中添加:
libtesseract302.lib
libtesseract302d.lib
liblept168.lib
liblept168d.lib
5) 将 liblept168.dll、liblept168d.dll、libtesseract302.dll 和 libtesseract302.dll 从 C:\Program Files\Tesseract-OCR\ 复制到您的项目文件夹中
6) main.cpp 源文件如下所示:
#include<baseapi.h>
#include <allheaders.h>
#include <iostream>
using namespace std;
int main(void){
tesseract::TessBaseAPI api;
api.Init("", "eng", tesseract::OEM_DEFAULT);
api.SetPageSegMode(static_cast<tesseract::PageSegMode>(7));
api.SetOutputName("out");
cout<<"File name:";
char image[256];
cin>>image;
PIX *pixs = pixRead(image);
STRING text_out;
api.ProcessPages(image, NULL, 0, &text_out);
cout<<text_out.string();
}
问题是无法编译此代码。我收到链接器错误,即 LINK:致命错误 LNK1181:无法打开输入文件“libtesseract302.lib”。
当我下载 Tesseract OCR 时。在 Tesseract-OCR\lib 中找不到 libtesseract302.dll 和 libtesseract302.dll 文件。我只能看到 liblept168.dll、liblept168d.dll 文件。
我试图搜索 libtesseract302.lib 和 libtesseract302.dll 但没有得到任何东西。
在这一点上我完全震惊了。
如果有人使用过 Tesseract OCR,请就此向我提出建议。
谢谢你们..