Tesseract-OCR引擎和VS2010工程简单调用

Tesseract-ocr For .NET 今天尝试了google的一个用于图片文字识别的Tesseract-ocr,我将它用于识别验证码。结果惨不忍睹。 首先你需要在github上获取当前最新的tesseract-3.04.00.tarhttps://github.com/tesseract-ocr/tesseract 下载、解压后找到vs2010文件夹 如图 用visual studio打开tesseract.sln 如图 然后在程 阅读详情

最近在搞文字识别,使用了Google的Tessract-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 _DEBUG
				printf("初始化字库失败!");
		#endif
				return 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 _DEBUG
	printf("识别结果:%s", pResult);
	getchar();
#endif
	delete 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;  
}  



Tesseract-ocr 文字识别软件的应用(1)——Tesseract在VS 2013中的配置以及调用 Tesseract是一个开源的OCR(Optical Character Recognition,光学字符识别)引擎,可以识别多种格式的图像文件并将其转换成文本,目前已支持60多种语言(包括中文)。 Tesseract最初由HP公司开发,后来由Google维护。鉴于本文面向于C++代码开发者,大家比较关心该引擎能否被C++调用,因此第一节着重于Tesseract在VS 2013中的配置以及调用,以... 阅读详情

相关推荐

tesseract-ocr引擎学习笔记

文章目录历史安装安装tesseract-ocr引擎安装识别语言包安装pyocrtesseract的使用参考链接 历史 光学字符识别(OCR,Optical Character Recognition)是指对文本资料进行扫描,然后对图像文件进行分析处理,获取文字及版面信息的过程。OCR技术非常专业,一般多是印刷、打印行业的从业人员使用,可以快速的将纸质资料转换为电子资料。关于中文OCR,目前国内水平较高的有清华文通、汉王、尚书,其产品各有千秋,价格不菲。国外OCR发展较早,像一些大公司,如IBM、微软、HP等

五角大寨 899

【Tesseract-OCR】在VS2010环境下使用的方法---精简快速入门之总结

【Tesseract-OCR】在VS2010环境下使用的方法---精简快速入门之总结 原文在:  http://blog.youkuaiyun.com/zfdxx369/article/details/9899347 以下是在原文基础上整理的精简安装使用流程: 一,下载lib和dll http://download.youkuaiyun.com/detail/lutwmiao/

lutwmiao的博客 1157

tesseract在win10下的源码编译攻略(不需要sw以及cppn版)

Tesseract是一个开源(OCR)引擎的源码编译

m0_37591278的博客 2178

Tesseract-OCR4.0版本在VS2015上的编译与运行

最近刚开始接触识别库引擎方面的知识,由于项目中需要使用光学识别处理模块,在老师与朋友的推荐下,我开始接触tesseract光学识别库,在最开始从GitHub上下载的源代码进行编译的时候,出现了许多意想不到的问题,为了先完成项目,我借鉴相关博客上针对tesseract3.04以下版本在VS2013上的编译方法,先在VS2013上运行tesseract,然而无法在VS2015上成功编译源代码,这让我一直

naidoudou的博客 3万+

Tesseract 302与VS2010结合的OCR开发实战

在当今数字化的世界中,光学字符识别(OCR)技术扮演着至关重要的角色。Tesseract,由HP开发,后来开源并由Google维护,是一款高效的OCR引擎。它能将图像文件中的打印或手写文本转换成机器编码文本。本章将介绍Tesseract 302版本的基本特性,包括其开源优势、语言支持范围以及在不同操作系统平台上的使用情况。Tesseract的开源特性使得它成为开发者社区中广泛使用的工具,它支持超过100种语言,适用于多种类型的文档和图像格式。

weixin_42596011的博客 390

2010 Tesseract OCR开发库详解:从工程配置到C++识别实战

OCR(光学字符识别)技术是图像文字提取的核心手段,在文档数字化、票据识别、自动化办公等场景中应用广泛。Tesseract作为开源OCR引擎的经典代表,其3.0版本通过C++接口TessBaseAPI大幅简化了二次开发流程,但Windows环境下的依赖编译始终是开发者绕不开的难题。理解OCR引擎的调用原理,掌握图像预处理、字符集限制、页面分割模式等参数调优方法,是提升识别准确率的关键。2010年已编译好的Tesseract识别开发库,将头文件、导入库、DLL及训练数据打包,省去源码编译的繁琐步骤,让开发者能

weixin_42552315的博客 299

Tesseract编译及使用(windows vs 2017)

Tesseract编译及使用 尊重他人的劳动转载请标注 资源准备 Vs2010或者更高版本。本教程使用vs2017 Tesseract源码。Git下载,或者直接从我的下载资源下载。 Git主页 地址https://github.com/tesseract-ocr ,现在goggle维护   蓝框是tesseract代码,也就是我们要编译的代码。   红框是我们要识别的...

fengya1的专栏 7135

2010年Tesseract已编译库集成指南与常见坑位解析

OCR(光学字符识别)技术让计算机从图像中提取文字,Tesseract作为老牌开源引擎,自2010年的3.0版本起就已支持多语言识别。对于C++开发者而言,使用已编译好的Tesseract识别开发库,能省去源码编译时Leptonica、libjpeg等依赖的复杂配置,直接通过头文件和DLL集成到Windows工程中。理解tessdata语言包管理、VC运行库版本匹配、字符编码转换等原理,是保证离线识别稳定的关键。这类编译库非常适合维护老系统、构建轻量级离线识别工具等场景。这些经验涵盖项目配置、API调用和排

weixin_28677451的博客 323

VS2010调用tesseract步骤

我的tesseract安装路径为D:\Tesseract-OCR,如果你的安装路径和我不一样,将这份文档里所有的D:\Tesseract-OCR改为你的安装路径即可。 1.下载lib和dll(所有需要下载的东西在附件里下载) Ø首先安装tesseract-ocr-setup-3.02.02.exe文件,我的安装路径为D:\Tesseract-OCR; Ø安装完成后解压tesseract-...

u011555996的博客 881

STM32H750_QSPI_Flash_Configuration_With_CubeMX

本文详细介绍了如何使用STM32CubeMX配置STM32H750的QSPI Flash接口,包括硬件连接、CubeMX参数设置、代码生成与初始化流程优化。通过实战示例展示了Flash ID读取、页编程与数据读取等常用操作,并提供了调试技巧与性能优化建议,帮助开发者高效实现高速外部存储扩展。

weixin_29176179的博客 274

Fast DDS源代码走读

DDS, PDP, EPD, DataWriter, DataReader

weixin_43082062的博客 713

基于VS2010+Opencv+Tesseract-3.02.02 快速实现字符识别

Tesseract的OCR作为一款字符识别的引擎,它最先是由惠普实验室于1985年开始研发,至1995年时已经成为OCR业内最准确的三款识别引擎之一。后来,HP不久便决定放弃OCR业务,Tesseract也从此尘封。数年以后,HP意识到,与其将Tesseract束之高阁,不如贡献给开源软件业,让其重焕新生。在2005年,Tesseract由美国内华达州信息技术研究所获得,并委托Google对其进行...

kenny的专栏 928

双目立体匹配算法:SGBM

SGBM(Semi-Global Block Matching)是一种用于计算双目视觉中视差(disparity)的半全局匹配算法,在OpenCV中的实现为semi-global block matching(SGBM)。它是基于全局匹配算法和局部匹配算法的优缺点,提出了一种折中的方法,既能保证视差图的质量,又能降低计算复杂度。

weixin_45303602的博客 9405

Tesseract-OCR学习系列(一)简介

转载自:http://www.jianshu.com/p/0a3386227981 Tesseract Introduction 做了一段时间的OCR。在PC的Visual Studio上和在TI/ADI的DSP上都做过。一般都是看项目的具体情况,然后根据这具体情况,设计一套算法。设计好了之后,这套算法就只能应用在这个项目上了。如果再来一个新的项目,就又得从头写起。可是,不就是

striving1234的专栏 8704

逆向工程实战:解密AppleAccount的X-MMe-Nas-Qualify签名生成机制

本文通过逆向工程实战,详细解析了AppleAccount服务中X-MMe-Nas-Qualify签名的生成机制。作者利用Frida进行动态追踪定位签名源头,结合IDA Pro进行静态分析,并借助LLDB动态调试还原核心算法。文章最终分享了如何独立于苹果官方库,通过Python代码复现签名算法,为自动化测试和深度交互苹果服务的开发者提供了关键技术路径。

weixin_29323049的博客 707

Python小白避坑指南:用Ursina做3D图形,Entity的scale和color参数到底怎么调才不出错?

本文详细解析了Python Ursina引擎中Entity对象的scale和color参数调优技巧,帮助3D图形编程初学者避开常见陷阱。通过对比实验和典型场景分析,深入讲解三种缩放方式的区别、颜色定义的四种方法,以及参数组合的协同效应,助力开发者精准控制3D图形表现。

weixin_26782929的博客 413

OCR识别引擎tesseract使用方法

原文地址::http://blog.youkuaiyun.com/lhfslhfs/article/details/7288389 相关文章 1、基于Qt和Opencv的OCR  ----http://download.youkuaiyun.com/download/a310989583/9628222 2、tesseract-ocr中文识别问题----http://bbs.youkuaiyun.com/topics/

xqhrs232的专栏 2869

2026.7.9:2026.7.9最新的Ubuntu26.04安装docker-ce

本文介绍了在Ubuntu 26.04系统上安装Docker CE的完整步骤。首先需要卸载旧版本的Docker组件,然后通过设置官方仓库进行安装。具体步骤包括:更新系统、安装必要依赖、添加Docker GPG密钥、配置稳定版仓库源、安装Docker Engine及containerd。文章还提供了安装特定版本Docker的方法,并说明了如何将用户加入docker组以获取权限,最后设置Docker开机自启。整个过程详细清晰,适合在Ubuntu系统上部署Docker环境的用户参考。

拥抱具身智能,昇腾Ascend C 516

Tesseract-OCR 3 04在Windows7 vs2013上编译过程

Tesseract-OCR 3 04在Windows7 vs2013上编译过程

hddryjv的博客 574

基于matlab的主成分分析的人脸二维码识别系统

人脸识别因其在系统安全验证、信用验证、刑侦跟踪、身份管理、视频会议、人机交互、智能家居等方面的巨大应用前景,成为当前模式识别和人工智能领域越来越热门的一个研究方向。随着安全入口控制和二维码智能扫描应用需求的快速增长,基于二维码识别的生物人脸统计识别技术也引起了人们的重视。本案例将详细讲解基于主成分分析的人脸特征提取的原理与方法,并将其与 QR 二维码的编解码进行结合,将 MATLAB 作为工具平台,调用 QR 二维码编解码应用程序,进而实现一个人脸二维码自动识别的系统原型。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 977

黑猫带你学UFS协议第23篇:UFS固件升级操作详解(FFU)

摘要:本文介绍了UFS固件更新(FFU)的实现方法与注意事项。根据UFS3.1 JEDEC协议,FFU通过write buffer命令(MODE=0Eh)下载FW固件,随后必须进行power cycle或硬件复位生效。文章详细阐述了FFU操作的10条规则,包括数据分片传输要求、寄存器访问限制等,同时指出协议未明确的厂商实现差异。关键寄存器包括bFFUTimeout、bDeviceFFUStatus和fPermanentlyDisableFwUpdate。

黑猫奥利奥的博客 1万+

OCR之Tesseract使用

一,下载lib和dll 可以从这里 http://code.google.com/p/tesseract-ocr/downloads/list   下载 tesseract-ocr-setup-3.02.02.exe Windows installer of tesseract-oc...

monk1992的博客 454

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Tesseract-OCR 3.04在Windows7 vs2013上编译过程

Tesseract-OCR 3.04在Windows7 vs2013上编译过程

网络资源是无限的 1万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

OCR

在VS2010下编译和使用tesseract_ocr识别验证码 在VS2010下编译和使用tesseract_ocr识别验证码 vs2008中leptonica-1.68安装配置 http://hi.baidu.com/ever8936/item/bda94a9110a8fb1f934f417f

vanloswang的专栏 516

python api调用tesseract_python下以api形式调用tesseract识别图片验证码

之前在博文中介绍在python中如何调用tesseract ocr引擎,当时主要介绍了shell模式,shell模式需要安装tesseract程序,并且效率相对略低。今天介绍api形式的调用方式,因为博主主要是基于windows环境进行开发,所以这里的api调用主要是指dll调用(linux之类是.so调用)二、tesseract dll下载网址https://github.com/charles...

weixin_42510717的博客 529
上一篇: Linux下OCR识别引擎tesseract使用方法
下一篇: 优化程序性能
tuling56
博客等级 码龄15年 37粉丝 27原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值