如何在Visual Studio 2010中实现Tesseract与项目一起运行
How to implement Tesseract to run with project in Visual Studio 2010
我在Visual Studio 2010中有一个C++项目,希望使用OCR。我遇到了很多Tesseract的"教程",但遗憾的是,我得到的只是头痛和浪费时间。
在我的项目中,我有一个图像存储为Mat。我的问题的一个解决方案是将这个Mat保存为图像(例如image.jpg),然后调用Tesseract可执行文件,如下所示:
system("tesseract.exe image.jpg out");
这让我得到一个输出out.txt,然后我调用
infile.open ("out.txt");
以读取Tesseract的输出。
这一切都很好,就像椅子一样工作,但这不是一个最佳解决方案。在我的项目中,我正在处理一个视频,所以以10+FPS保存/调用.exe/写入/读取并不是我真正想要的。我想对现有代码实现Tesseract,以便能够将Mat作为参数传递,并立即获得字符串形式的结果。
你知道用Visual Studio 2010实现Tesseract OCR的好教程吗?还是你自己的解决方案?
好的,我想好了,但它只适用于Release和Win32配置(无调试或x64)。"调试"配置下有许多链接错误。
所以,
1.首先,在此处下载准备好的库文件夹(Tesseract+Leptonica):
镜像1(Google Drive)
镜像2(MediaFire)
2.提取tesseract.zip
到C:
3.在Visual Studio中,转到C/C++ > General > Additional Include Directories
插入C:tesseractinclude
4.在Linker > General > Additional Library Directories
下
插入C:tesseractlib
5.在Linker > Input > Additional Dependencies
下
添加:
liblept168.lib
libtesseract302.lib
示例代码应该如下所示:
#include <tesseractbaseapi.h>
#include <leptonicaallheaders.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();
system("pause");
}
对于与OpenCV和Mat类型图像的交互,请查看此处
自从上次回复以来已经有很多了,但可能会对其他人有所帮助;
- 我认为您还必须将"liblept168.lib"answers"liblep168d.lib"添加到Additional Dependencies
- 将"liblep168.dll"answers"liblet168d.dll"添加到exe的目标位置
- 将#include添加到代码中
(这个答案必须是对Bruce答案的评论。很抱歉造成混淆。)
您需要通过API使用库。
很可能:
-
首先下载libs(https://code.google.com/p/tesseract-ocr/downloads/detail?name=tesseract-3.02.02-win32-lib-include-dirs.zip和;can=2&q=)。它们是用Visual 2008编译的,但应该足够了
-
直接使用API(例如,查看使用它的开源项目:https://code.google.com/p/qtesseract/source/browse/#svn%2Ftrunk%2Ftessdata)并阅读以下答案中的链接:如何在小型c++项目中使用tesseract ocr(或任何其他免费ocr)?
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 无法在 CLion 中构建 C++ 项目
- 运行同一解决方案的另一个项目的项目
- CMake-按正确顺序将项目与C运行时对象文件链接
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 欧拉项目#8答案是大以获得有效答案
- 从链接列表c++中删除一个项目
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- 既然存在危险,为什么项目要使用-I include开关
- cmake在我的项目中所需的所有静态库都不成功
- QT通过C++添加映射QML项目
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 在linux上调试巨大的C++项目
- 在其他文件中创建类时在 c++ 项目中不起作用
- 使外部项目可用于find_package CMake
- 在子目录中使用target_sources()命令时用于单元测试(qtest)的项目结构
- 使用外部SDK工具链文件在VisualStudio上生成项目编译错误
- 如何将 Tesseract 链接到 VS 2019 中的C++项目?
- 如何在Visual Studio 2010中实现Tesseract与项目一起运行
- tesseract Remove_Reference在visual studio 2012项目中的模糊符号