Windows下Tesseract OCR引擎库的编译和下载

news2024/11/26 2:54:04

系列文章目录


文章目录

  • 系列文章目录
  • 前言
  • 一、简介
  • 二、使用步骤
    • 1.Tesseract库下载
      • 1.1 Vcpkg下载
      • 1.2 添加环境变量
      • 1.3 vcpkg运行
      • 1.4 下载Tesseract库
    • 2.引用到项目
      • 2.1 把Tesseract关联的dll/lib/h都放入指定的目录
      • 2.2 添加头文件
      • 2.3 参照lib
  • 总结


前言

网上很多关于Tesseract OCR下载和编译的博客都已经过时了,按照其方法并不能成功。这里以最新的官方文档为基础,记录Tesseract OCR的下载和编译经历。供大家参考。


一、简介

Tesseract OCR是由惠普公司的布里斯托尔实验室在1984-1994年开发的一款开源OCR引擎,最初作为其平板扫描仪的文字识别引擎。在1995年的UNLV OCR字符识别准确性测试中,Tesseract拔得头筹,受到了广泛关注。然而,在1994年以后,Tesseract的开发就停止了。

直到2005年,HP将Tesseract贡献给开源社区,美国内华达州信息技术研究所获得该源码,同时,Google开始对Tesseract进行功能扩展及优化。目前,Tesseract作为开源项目发布在Google Project上,获得了新生。Tesseract的最新版本是3.02,支持60种以上的语言,它提供一个引擎和一个命令行工具,可以从官方网站上下载。
Tesseract OCR是一款开源的OCR引擎,该引擎功能强大,概括地可以分为两部分:图片布局分析和字符分割和识别。图片布局分析是字符识别的准备工作,通过一种混合的基于制表位检测的页面布局分析方法,将图像的表格、文本、图片等内容进行区分。字符分割和识别是整个Tesseract的设计目标,工作内容最为复杂。

首先,字符切割采用两步走战略:利用字符间的间隔进行粗略的切分,得到大部分的字符,同时也有粘连字符或者错误切分的字符。这里会进行第一次字符识别,通过字符区域类型判定,根据判定结果对比字符库识别字符。根据识别出来的字符,进行粘连字符的分割,同时把错误分割的字符合并,完成字符的精细切分。

Tesseract OCR具有高精度的识别能力,支持多种语言,并且在免费OCR引擎中识别精度也仍然是出类拔萃的。因为其免费与较好的效果,许多的个人开发者以及一些较小的团队在使用着 Tesseract ,诸如验证码识别、车牌号识别等应用中,不难见到 Tesseract 的身影。

二、使用步骤

官方Windows的编译指南文档:https://tesseract-ocr.github.io/tessdoc/Compiling.html#windows
官方各种平台的编译指南文档:https://tesseract-ocr.github.io/tessdoc/Compiling.html

1.Tesseract库下载

可以通过SW 或者vcpkg 下载并编译Tesseract以及相关的依赖项。

SW 下 载途中失败,可能是公司网络的原因,网上也有人说是国内就不能下载
vcpkg 成功,下面以这个展开

1.1 Vcpkg下载

https://github.com/microsoft/vcpkg

1.2 添加环境变量

将下载文件夹的目录添加到系统环境变量中,后续运行vcpkg的控制台命令方便。我的路径是:“D:\TesseractOCR\vcpkg”

1.3 vcpkg运行

双击vcpkg文件夹中的bootstrap-vcpkg.bat,等待运行完毕,自动关闭

1.4 下载Tesseract库

控制台输入以下指令下载需要的版本,注意这里耗时较长。存放在"E:\TesseractOCR\vcpkg\installed"

动态库
vcpkg install tesseract:x86-windows
vcpkg install tesseract:x64-windows

静态库
vcpkg install tesseract:x86-windows-static
vcpkg install tesseract:x64-windows-static

在这里插入图片描述

2.引用到项目

把下载的动态库或静态库引用到C++工程

静态库 失败(编译不过,原因不明)
动态库 成功

注意事项:Debug模式参照Debug的库,Release模式参照Release的库,否则运行的时候可能会异常崩溃

2.1 把Tesseract关联的dll/lib/h都放入指定的目录

dll:Tesseract的bin目录中的所有dll都要放到运行目录(tessdata文件夹下的语言包也需要,默认是英语)
lib/h:根据2.2/2.3把需要的文件放到指定目录即可

2.2 添加头文件

官方文档的代码中头文件只有前面俩个,实测下来第三个也是需要的

#include <tesseract/baseapi.h>
#include <leptonica/allheaders.h>
#include <leptonica/pix_internal.h>

2.3 参照lib

tesseract53d.lib
leptonica-1.83.1d.lib

总结

本文主要讲述了Tesseract库的下载和引用。如果想自己编译Tesseract库的需要去下载源码。虽然也尝试过下载源码。但是通过CMake生成vs解决方案的时候,一直没有通过,有知道原因的,欢迎评论交流。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1188842.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

晶振分频【FPGA】

所以数据对齐晶振。 6分频&#xff1a;【1】 module divider_six // 6分频 【0~2】 ( input wire sys_clk , //系统时钟 50MHz input wire sys_rst_n , //全局复位 output reg clk_out //对系统时钟 6 分频后的信号 );reg [1:0] cnt; //用于计数的寄存器 //cnt:计数器从 0 到…

JAVA数据类型及自动类型转换、强制类型转换

1.数据类型的分类 2. 数据类型的自动类型转换 3.强制类型转换

08 # 手写 filter 方法

什么是 filter filter() 方法创建给定数组一部分的浅拷贝&#xff0c;其包含通过所提供函数实现的测试的所有元素。如果没有元素通过测试&#xff0c;则返回一个空数组。 ele&#xff1a;表示数组中的每一个元素index&#xff1a;表示数据中元素的索引array&#xff1a;表示数…

docker部署tomcat

1.下载tomcat镜像 尽量去下载最新版本 直接输入docker pull tomcat 后面不跟版本号(要是跟版本号&#xff0c;你还要去官网去查看是否有此版本&#xff0c;太麻烦了) 2.查看镜像 3.通过镜像去run启动容器 -d 就是后台运行 --name 给容器取个新名字 -p 3355:8080…

速看!2024年最具实用性的15款在线画图工具

在数字时代&#xff0c;绘图软件已经成为了创意表达和信息传达的不可或缺的工具。而随着互联网的发展&#xff0c;越来越多的在线画图软件应运而生&#xff0c;方便了人们随时随地创建、编辑和分享图像。本文将为你介绍15款热门且好用的在线画图软件&#xff0c;深入探讨每款软…

使用 promise 重构 Android 异步代码

背景 业务当中写Android异步任务一直是一项挑战&#xff0c;以往的回调和线程管理方式比较复杂和繁琐&#xff0c;造成代码难以维护和阅读。在前端领域中JavaScript其实也面临同样的问题&#xff0c;Promise 就是它的比较主流的一种解法。 在尝试使用Promise之前我们也针对And…

docker镜像原理之联合文件系统

镜像是什么&#xff1f; 镜像是一种轻量级、可执行的独立软件保&#xff0c;用来打包软件运行环境和基于运行环境开发的软件 他包含运行某个软件所需的所有内容&#xff0c;包括代码、运行时库、环境变量和配置文件 所有应用都不要服务器去部署&#xff0c;都可以直接打包 do…

Docker快速搭建Drupal内容管理系统并远程访问

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525;个人专栏:《Linux深造日志》《C干货基地》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 前言1. Docker安装Drupal2. 本地局域网访问3 . Linux 安装cpolar4. 配置Drupal公网访问地址5. 公网远程访问Drupal…

C语言实现将一个数组逆序输出,使用指针数组操作

完整代码&#xff1a; // 将一个数组逆序输出&#xff0c;使用指针数组操作 #include<stdio.h>//将一个数组逆序输出 void reverse(int *arr,int len){//头指针int *startarr;//尾指针int *endarrlen-1;//通过交换数组中前后所有的数&#xff0c;来使数组逆序while (sta…

多无人机在线路径规划的新算法

南京航空航天大学自动化学院使用NOKOV度量动作捕捉系统获取多架无人机的精确位置信息&#xff0c;实现多架无人机协同实时路径规划。 研究背景 近年来&#xff0c;无人机越来越多地应用于执行战场侦察、目标识别、跟踪打击等任务。 由多架无人机协同执行任务&#xff0c;通过…

彻底删除Ubuntu双系统(联想小新2022)

彻底卸载Ubuntu双系统 以里联想小新pro16 i9-12900h为例子 把开机启动项设为默认Windows启动 以联想电脑为例子&#xff0c;关机后一直点击Fn F2进入Bios把windows启动项移到最上面&#xff0c;这样可以开机默认启动windows了删除ubuntu系统分区 使用磁盘管理软件 DiskGeniu…

《C++ Primer》第8章 IO库

参考资料&#xff1a; 《C Primer》第5版《C Primer 习题集》第5版 8.1 IO类&#xff08;P278&#xff09; 我们目前使用过的 IO 对象&#xff08;cin 、cout&#xff09;都是关联到控制台窗口、操纵 char 数据的。有时&#xff0c;我们需要对命名文件或者 string IO 操作。…

iOS如何通过在线状态来监听其他设备登录的状态

前提条件 1、完成 3.9.1 或以上版本 SDK 初始化 2、了解环信即时通讯 IM API 的 使用限制。 3、已联系商务开通在线状态订阅功能 实现方法 你可以通过调用 subscribe 方法订阅自己的在线状态&#xff0c;从而可以监听到其他设备在登录和离线时的回调&#xff0c;示例代码如下…

【源码】自制链接表管理器

hi&#xff0c;大家好呀&#xff01; 前几天更新了个视频&#xff0c;教大家做了一个链接表的管理器&#xff0c;今天把文字内容给到大家&#xff0c;至于什么原因需要自己做一个链接表管理器&#xff0c;我在视频中有讲到&#xff0c;因为系统自带的链接表管理器没有筛选功能…

回归预测 | Matlab实现PCA-PLS主成分降维结合偏最小二乘回归预测

回归预测 | Matlab实现PCA-PLS主成分降维结合偏最小二乘回归预测 目录 回归预测 | Matlab实现PCA-PLS主成分降维结合偏最小二乘回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现PCA-PLS主成分降维结合偏小二乘回归预测&#xff08;完整源码和数据) 1.输…

直面LED Driver测试挑战,助力显示屏行业变中求变!

杭州亚运会开幕式惊艳世界&#xff0c;引发社会各界一致赞誉&#xff01;在大气浪漫的舞台效果中&#xff0c;LED屏、裸眼3D屏凭借“硬核科技”出圈&#xff0c;为大家带来科技、活力、诗意的“中国式浪漫”观赏体验。而这美轮美奂的LED呈现效果背后&#xff0c;主要依靠的是LE…

Echarts仪表盘自定义数值样式

需求描述 原图样式 需求样式 解决方案 {name: 数值,type: gauge,startAngle: 180,endAngle: 0,radius: 30%,center: [50%, 55%], // 默认全局居中 min: 0,max: 4,zlevel: 2,splitNumber: 0,axisLine: { // 坐标轴线 lineStyle: {color: [[1, ]], // 属性lineStyle控制线…

TSINGSEE视频智能分析系统AI算法针对遛狗不拴绳行为的监管方案

一、背景与需求 近期&#xff0c;一则恶犬咬伤女童的新闻上了热搜&#xff0c;因为狗主人没有给狗拴绳&#xff0c;导致小区内一女童被大型犬撕咬&#xff0c;女童全身多处咬伤&#xff0c;已入院治疗。该新闻曝出后立刻引发社会关注。遛狗不拴绳行为也再一次引发热议。因为狗主…

spring基础,编写第一个程序

spring基础 前言SpringSpring概述Spring的8大模块Spring特点学习spring6软件版本Spring的入门程序第一个Spring程序 小结 前言 控制反转&#xff0c;是面向对象编程中的一种设计思想&#xff0c;可以用来降低代码之间的耦合度&#xff0c;符合依赖倒置原则。 控制反转的核心是…

06、SpringBoot+微信支付 -->商户定时查订单状态、用户取消订单(关闭订单API)、查询订单API--到微信支付平台查询订单

目录 Native 下单、取消订单订单功能完善需求1&#xff1a;商户定时查单前端代码&#xff1a;后端代码&#xff1a;测试&#xff1a;swagger 测试&#xff1a; 需求2&#xff1a;用户取消订单&#xff08;关闭订单API&#xff09;需求&#xff1a;代码&#xff1a;前端&#xf…