Tesseract-OCR引擎和VS2010工程简单调用
来源:互联网 发布:竞价什么软件好 编辑:程序博客网 时间:2024/04/30 20:19
最近在搞文字识别,使用了Google的Tessract-OCR文本识别引擎,在此做个总结。
参考了以下资料:
- Google Tessetact项目地址
- 开源OCR引擎Tesseract使用介绍
- Tesseract-ocr体系结构
- 浅谈OCR之Tesseract
- 使用Tesseract OC 浅谈OCR之TesseractR 提取复杂图像中的文字 - physoft - 博客园
- tesseract 识别中文字符 - haoran-10 - ITeye技术网站
- Tesseract OCR 中文识别尝试 - muse
- tesseract-ocr训练方法 » 李鑫 Blog
- tesseract3.01的训练和使用
- Google leptonica项目地址 - 在Tesseract中使用的图像处理库
- LibTIFF - TIFF Library and Utilities-- 在Tesseract中使用的图像处理库
- 在VS2010下编译和使用tesseract_ocr识别验证码
- tesseract OCR的多语言,多字体字符识别(推荐)
- tesseract OCR训练新字体对图片的预处理和要求(推荐)
- tesseract OCR Engine overview字符识别学习(推荐)
- OCR学习及tesseract的一些测试(推荐)
- 一些开源的OCR库
两种可调用方法:
方法一:
指定矩形区域进行识别
// Tesseract3.2.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#pragma comment(lib, "public/lib/libtesseract302.lib")#pragma comment(lib, "lib/liblept.lib")#include "public/include/tesseract/baseapi.h"#include "public/include/tesseract/basedir.h"#include "public/include/tesseract/strngs.h"#include "include/leptonica/allheaders.h"//到谷歌官网下载tesseract-3.02.02-win32-lib-include-dirs.zip 识别引擎//以及leptonica-1.68-win32-lib-include-dirs.zip 图像处理库void ConvertUtf8ToGBK(char **amp,char *strUtf8){int len=MultiByteToWideChar(CP_UTF8, 0, (LPCSTR)strUtf8, -1, NULL,0); unsigned short * wszGBK = new unsigned short[len+1]; memset(wszGBK, 0, len * 2 + 2); MultiByteToWideChar(CP_UTF8, 0, (LPCSTR)strUtf8, -1, (LPWSTR)wszGBK, len); len = WideCharToMultiByte(CP_ACP, 0, (LPCWSTR)wszGBK, -1, NULL, 0, NULL, NULL); //char *szGBK=new char[len + 1]; *amp = new char[len+1];memset(*amp, 0, len + 1); WideCharToMultiByte (CP_ACP, 0, (LPCWSTR)wszGBK, -1, *amp, len, NULL,NULL); //amp=szGBK; }int _tmain(int argc, _TCHAR* argv[]){char *filepath = "ocr_en.tif";tesseract::TessBaseAPI api;//api.SetOutputName("output");api.SetInputName(filepath);api.SetPageSegMode(tesseract::PSM_AUTO);int nRet = api.Init("tessdata", "eng");if (nRet != 0){#if _DEBUGprintf("初始化字库失败!");#endifreturn 0;}PIX *pix = pixRead(filepath);api.SetImage(pix);char *pdata = NULL;char *pResult = NULL;api.SetRectangle(0, 0, 400, 80);pdata = api.GetUTF8Text();//进行识别ConvertUtf8ToGBK(&pResult, pdata); //对结果转码,保存在pResultl里#if _DEBUGprintf("识别结果:%s", pResult);getchar();#endifdelete pResult;pixDestroy(&pix);api.Clear();api.End();return 0;}方法二:
对整幅图像进行识别
#pragma comment(lib,"libtesseract302.lib")#pragma comment(lib,"liblept168.dll")using namespace std;using namespace cv;string UTF8ToGBK(const std::string& strUTF8);//编码转换/* * 调用tesseract api 引擎进行识别 * 输入:char *str -->待识别的图片 * 输出:识别出的文字,改进:把图片显示出来 */int tesseract_ocr(char*picname){double t; tesseract::TessBaseAPI api; api.Init(NULL, "chi_sim", tesseract::OEM_DEFAULT); t = (double)getTickCount(); STRING text_out;if (!api.ProcessPages(picname, NULL, 0, &text_out)) { printf("Can not read %s this picture!!!",picname);return 0; }t = ((double)getTickCount() - t)/getTickFrequency(); cout<<"耗时"<<t<<"秒"<<endl<<endl;string gbk=UTF8ToGBK(text_out.string());//显示乱码,输出的utf-8,要转换cout<<gbk<<endl; //C++如何把string类型保存在文件中//将识别结果写入输出文件FILE* fout = fopen("ocr_result.txt", "a");fprintf(fout,"图片:%s\n%s",picname,gbk);//fwrite(text_out.string(), 1, text_out.length(), fout);fclose(fout);return 0;}/* *utf-8转gbk,在终端就不会显示为乱码 */string UTF8ToGBK(const std::string& strUTF8) { int len = MultiByteToWideChar(CP_UTF8, 0, strUTF8.c_str(), -1, NULL, 0); unsigned short * wszGBK = new unsigned short[len + 1]; memset(wszGBK, 0, len * 2 + 2); MultiByteToWideChar(CP_UTF8, 0,LPCSTR(strUTF8.c_str()), -1, LPWSTR(wszGBK), len); len = WideCharToMultiByte(CP_ACP, 0,LPCTSTR(wszGBK), -1, NULL, 0, NULL, NULL); char *szGBK = new char[len + 1]; memset(szGBK, 0, len + 1); WideCharToMultiByte(CP_ACP,0, LPCTSTR(wszGBK), -1, szGBK, len, NULL, NULL); //strUTF8 = szGBK; std::string strTemp(szGBK); delete[]szGBK; delete[]wszGBK; return strTemp; }
0 0
- Tesseract-OCR引擎和VS2010工程简单调用
- tesseract OCR库在vs2010中的调用
- tesseract OCR库在vs2010中的调用
- OCR----Python调用Tesseract引擎(Ubuntu下)
- Tesseract-ocr 3.0.2源码 + VS2010项目工程 + 简单测试代码
- 【Tesseract-OCR】在VS2010环境下调用API方法---简单快速之总结
- 【Tesseract-OCR】在VS2010环境下调用API方法—简单快速之总结
- 【Tesseract-OCR】在VS2010环境下调用API方法---简单快速之总结
- 开源OCR引擎Tesseract-OCR
- Tesseract-OCR引擎 入门
- Tesseract-OCR引擎 入门
- Tesseract-OCR引擎 入门
- Tesseract-OCR引擎 入门
- Tesseract-OCR引擎 入门
- 开源OCR引擎Tesseract
- 开源OCR引擎Tesseract
- 开源OCR引擎Tesseract
- Tesseract-OCR引擎 入门
- 导数、梯度和极值
- [转]老码农教你学英语
- SQLSERVER语句优化及性能调试 第一篇 效率至上 2 关于如何优化表A不存在于表B的语句
- Eclipse导入android项目后有叹号
- http状态头列表
- Tesseract-OCR引擎和VS2010工程简单调用
- android DefaultHttpClient 超时
- 二进制与十进制的转换
- 几款不错的天气插件
- Spring中ApplicationContext加载机制
- 系统运行缓慢的时候如何确定是哪方面的因素引起的
- 浅析产品新手引导设计
- url
- DB2错误信息SQLCODE SQLSTATE (按sqlcode排序)