Tesseract-OCR命令及WPF简单使用

使用 Golang 和 Tesseract 库识别验证码 在开始之前,确保你已经安装了 Golang 和 Tesseract,并且在你的 GOPATH 中安装了 Tesseract Go 绑定库。在这篇文章中,我们将介绍如何使用 Golang 和 Tesseract 库来识别网站上的验证码。我们会先下载验证码图片,然后使用 Tesseract 库对其进行识别,最后输出识别结果。下载验证码图片后,我们需要使用 Tesseract 库对其进行识别。Tesseract 是一个开源的 OCR 引擎,可以识别许多不同类型的图像文件,并将它们转换为可编辑的文本。 阅读详情

Tesseract 是一个开源的 OCR 引擎,可以识别多种格式的图像文件并将其转换成文本,最初由 HP 公司开发,后来由 Google 维护。
下载地址:https://digi.bib.uni-mannheim.de/tesseract/
在这里插入图片描述
其中文件名中带有 dev 的为开发版本,不带 dev 的为稳定版本。
安装时可以添加支持的语言包,如下界面最后一个选项点开选择,我们可以选择简体中文 Chiness(Simplified)。
在这里插入图片描述
添加中文的识别库:

https://github.com/tesseract-ocr/tessdata/find/master

这个网址中下载chi_sim.traineddata,下载后放到Tesseract-OCR\tessdata文件夹内。

设置环境变量:
安装完成后在Windows下把tesseract.exe所在的路径添加到PATH环境变量中。

另外一个环境变量我自己电脑中是没有添加,也可以正常运行程序。做个参考:


在使用tesseract命令行进行测试时,报以下的错误

Error opening data file \Program Files (x86)\Tesseract-OCR\tessdata/eng.traineddata
Please make sure the TESSDATA_PREFIX environment variable is set to the parent directory of your "tessdata" directory.
Failed loading language 'eng'
Tesseract couldn't load any languages!
Could not initialize tesseract.

报错是意思是缺少环境变量TESSDATA_PREFIX,导致无法加载任何语言,就不能初始化tesseract。

解决的方法也很简单,在环境变量中,添加一个变量名为TESSDATA_PREFIX,变量值为teseractdata目录地址。


在命令行中使用tesseract识别图像:
如果想要在cmd下能够使用tesseract命令,那么需要把tesseract.exe所在的目录放到PATH环境变量中。然后使用命令:tesseract 图片路径 文件路径。
示例:

tesseract a.png a

那么就会识别出a.png中的图片,并且把文字写入到a.txt中。

如果识别中文的,需要添加个参数:

tesseract a.png a -l eng 默认的是eng,中文的就改成chi_sim。

关于快速的在当前文件夹内打开cmd的方法,是按住shift键,然后右键,就可以有“在此处打开命令行窗口”的选项,并且直接定位到当前文件夹内。


#region 图片转文字 ocr

private static string CmdPath = @"C:\Windows\System32\cmd.exe";

/// <summary>
/// 执行cmd命令
/// 多命令请使用批处理命令连接符:
/// <![CDATA[
/// &:同时执行两个命令
/// |:将上一个命令的输出,作为下一个命令的输入
/// &&:当&&前的命令成功时,才执行&&后的命令
/// ||:当||前的命令失败时,才执行||后的命令]]>
/// 其他请百度
/// </summary>
/// <param name="cmd"></param>
/// <param name="output"></param>
public  void RunCmd(string cmd, out string output)
{
    cmd = cmd.Trim().TrimEnd('&') + "&exit";//说明:不管命令是否成功均执行exit命令,否则当调用ReadToEnd()方法时,会处于假死状态
    Console.WriteLine(cmd);
    using (Process p = new Process())
    {
        p.StartInfo.FileName = CmdPath;

        p.StartInfo.UseShellExecute = false;        //是否使用操作系统shell启动

        p.StartInfo.RedirectStandardInput = true;   //接受来自调用程序的输入信息

        p.StartInfo.RedirectStandardOutput = true;  //由调用程序获取输出信息

        p.StartInfo.RedirectStandardError = true;   //重定向标准错误输出

        p.StartInfo.CreateNoWindow = true;          //不显示程序窗口

        p.Start();//启动程序

        //向cmd窗口写入命令
        p.StandardInput.WriteLine(cmd);

        p.StandardInput.AutoFlush = true;

        p.StandardInput.Close();
        //获取cmd窗口的输出信息
        output = p.StandardError.ReadToEnd();

        p.WaitForExit();//等待程序执行完退出进程

        p.Close();

    }

}
public string ImageToText(string imgPath)
{
    try
    {
        //Thread.Sleep(3000);

        //using (var engine = new TesseractEngine("tessdata", "eng", EngineMode.Default))
        //{
        //    using (var img = Pix.LoadFromFile(imgPath))
        //    {
        //        using (var page = engine.Process(img))
        //        {
        //            return page.GetText();
        //        }
        //    }
        //}
        string saveDir = string.Format(@"{0}Images\{1}\", this.GetBaseDirectory(), DateTime.Now.ToString("yyyy-MM-dd"));

        if (!System.IO.Directory.Exists(saveDir))
        {
            System.IO.Directory.CreateDirectory(saveDir);
        }
        string txtPath = saveDir + string.Format(@"{0}_{1}", ViewModel.TestInfo.Barcode, DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss"));

        string cmd = "tesseract " + imgPath + " " + txtPath;
        
        string iii = "";
        
        RunCmd(cmd,out iii);
      
        Thread.Sleep(1000);

        string txtfile = txtPath + ".txt" ;

        if(File.Exists(txtfile))
        {
            string text = File.ReadAllText(txtfile);

            return text;
        }
        else
        {
            return null;
        }

    } catch (Exception ex){

        System.Windows.MessageBox.Show("OCR解析失败:" + ex.Message);
        return null;
    }
}
#endregion
使用Golang实现OCR 在本文中,我们将介绍如何使用tesseract库进行OCR处理。接下来,我们将图像转换为灰度图像,并使用OCR引擎对其进行处理。在Windows系统中,可以从Tesseract OCR的官方网站(https://github.com/tesseract-ocr/tesseract)下载预编译的二进制文件,并将其添加到系统路径中。在Golang中,有许多可用的OCR库,如gocv、go-opencv等。在本文中,我们将使用gocv库。在我们安装好所需的库之后,我们可以开始编写代码来进行OCR处理。 阅读详情

相关推荐

C#环境下Tesseract OCR完整实例与验证码识别训练教程

若需将tessdata置于其他位置(如外部配置路径),可在初始化时传入绝对路径:// 正常处理在实际OCR应用场景中,尤其是涉及验证码识别、特殊字体或非标准字符集时,Tesseract默认提供的语言模型往往难以满足高精度识别的需求。此时,依赖通用预训练模型已无法应对复杂挑战,必须通过自定义字库训练来构建专用的模型文件。本章节将系统性地阐述如何从零开始搭建一套完整的Tesseract自定义训练体系,并深入剖析各环节的技术细节与优化策略。

weixin_36303807的博客 1934

tesserocr安装

官方网站:https://github.com/tesseract-ocr/tesseract 官方文档:https://github.com/tesseract-ocr/tessdoc 语言包地址:https://github.com/tesseract-ocr/tessdata 下载地址:https://digi.bib.uni-mannheim.de/tesseract/ 安装程序 访问上面的下载地址,选择最新稳定版本安装,选择安装的目录,比如我安装的目录是D:\tesseract_ocr5.0..

Zz_er的博客 906

VietOCRwpf:用于Tesseract OCR引擎的.NET WPF GUI前端

越南OCRwpf 使用WPF编写的Tesseract OCR引擎的.NET GUI前端。 支持Tesseract支持的越南语和其他语言的光学字符识别。 VietOCRwpf是根据发行和分发的。 特征 PDF,TIFF,JPEG,GIF,PNG,BMP图像格式 多页TIFF图像 屏幕截图 选择框 文件拖放 从剪贴板粘贴图像 对越南语进行后处理以提高准确率 越南文输入法 多种语言的本地化用户界面() 集成扫描支持 监视文件夹监视器以支持批处理 后处理中的自定义文本替换 使用Hunspell进行拼写检查 支持下载和安装语言数据包和适当的拼写词典 指示 该程序可以作为Windows或控制台应用程序运行。 对于CLI选项: vietocr imagefile outputfile [-l lang] [--psm pagesegmode] [text|hocr|pdf|unlv|box|a

ocr的下载使用

关于中文OCR,目前国内水平较高的有清华文通、汉王、尚书,其产品各有千秋,价格不菲。国外OCR发展较早,像一些大公司,如IBM、微软、HP等,即使没有推出单独的OCR产品,但是他们的研发团队早已掌握核心技术,将OCR功能植入了自身的软件系统。数年以后,HP意识到,与其将Tesseract束之高阁,不如贡献给开源软件业,让其重焕新生--2005年,Tesseract由美国内华达州信息技术研究所获得,并求诸于Google对Tesseract进行改进、消除Bug、优化工作。查看OCR技术的发展简史。

qq_73505285的博客 403

go.tesseract:go.tesseract是tesseract-ocr库的包装器

## go.tesseract go.tesseract是tesseract OCR库的包装器(来自图像/ pdf的文本识别)。 安装和依赖项 go.tesseract具有两个直接依赖关系; go.leptonica和libtesseract 确保已安装 。 go.leptonica具有C库依赖关系,请阅读 。 您需要在3.02.02或更高版本中安装tesseract库,其中包括开发标头。 您绝对需要3.02.02(或更高版本),因为go.tesseract无法使用tesseract的早期版本进行编译。 在撰写本文时,此版本的tesseract还不在ubuntu / debian稳定存储库中。 go.tesseract使用gopkg.in进行版本控制: go get gopkg.in/GeertJohan/go.tesseract.v1 Debian测试(jessie)软件包 s

【NVIDIA Jetson Orin系列 - 安装NVIDIA SDK Manager】

NVIDIA Jetson Orin - 安装NVIDIA SDK Manager

dally2的博客 2691

[转]Tesseract-OCR (Tesseract的OCR引擎最先由HP实验室于1985年开始研发)

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

weixin_34242819的博客 227

验证码接收平台搭建教程(含源代码)

在很多注册流程中,我们常常需要通过短信验证码验证用户的身份。本教程将手把手教你搭建一个验证码接收平台,用于自动接收并展示来自短信网关或短信转发器的验证码。⚠️ 本教程仅供学习使用,请勿用于任何非法用途!本教程展示了一个简单的验证码接收平台的搭建流程,从后端到前端完整实现。你可以将其用于学习 Web 开发、数据库操作以及 Flask 项目部署。访问我的优快云主页。

weixin_52548902的博客 4083

浅谈OCR之Tesseract

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

计算机视觉小菜鸟的专栏 8552

保姆级教程:用Cesium的Primitive API实现火箭发射全流程动画(含代码避坑)

本文详细介绍了如何使用Cesium的Primitive API实现火箭发射全流程动画,包括模型控制、关节动画和精细时序管理。通过实战代码示例和性能优化技巧,帮助开发者高效构建高复杂度航天仿真系统,显著提升三维可视化效果与运行效率。

weixin_42565652的博客 212

何恺明团队MeanFlow论文解读:单步生成模型如何实现ImageNet 256×256的SOTA效果?

何恺明团队提出的MeanFlow框架在生成式AI领域实现重大突破,通过引入平均速度场概念,在ImageNet 256×256数据集上达到单步生成3.43 FID的SOTA效果。该技术解决了传统Flow Matching方法的积分误差累积问题,显著提升生成效率与质量,为AI图像生成应用开辟新方向。

weixin_30687051的博客 397

光学识别(OCR)之 Tesseract

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

木头的专栏 614

Sigrity Power DC Package Multi-Resistor Compact ET Model Extraction模式提取封装基板电热阻模型

DIE(定义DIE的参数):material设置为silicon(硅),Attach material(贴片的材料,设置为Die Attach),Attach thickness(贴片的材料的厚度,厚度设置为0.001mm,点击ok。Cap为覆盖材料,Material定义材料类型,thickness定义厚度,length和width定义长宽,Adhesive Material为胶的材料,Adhesive Material为胶的厚度,本例不定义,跳过即可。

weixin_54787054的博客 438

Tesseract-OCR识别 学习(一)命令识别

1、Tesseract概述(来自网页) Tesseract的OCR引擎最先由HP实验室于1985年开始研发,至1995年时已经成为OCR业内最准确的三款识别引擎之一。然而,HP不久便决定放弃OCR业务,Tesseract也从此尘封。 数年以后,HP意识到,与其将Tesseract束之高阁,不如贡献给开源软件业,让其重焕新生--2005年,Tesseract由美国内华达州信息技术研究所获得,并求诸于Google对Tesseract进行改进、消除Bug、优化工作。 Tesseract目前已作为开源项目发布在Go

u010892385的博客 1340

PostgreSQL面试题及详细答案120道(101-120)

本文针对PostgreSQL数据库提供全面的性能优化方案,涵盖10个关键面试题解析。主要内容包括:1)并发参数调优(max_connections、worker_processes);2)缓存设置(effective_cache_size);3)WAL日志优化;4)慢查询监控与日志配置;5)会话管理与阻塞处理;6)高写入场景优化策略;7)存储类型参数调整;8)自动清理机制配置;9)大表DDL操作避坑指南;10)性能瓶颈诊断方法论。对DBA和开发者具有实操指导价值

大剑师兰特的GIS世界 855

lammps后处理:堆垛层错和孪晶的数量统计

python调用ovito包可以免费实现ovito pro版本的功能,不需要安装ovito pro软件,如统计位错线长度、CNA结构、键角分布等,如需深入学习,可考虑报名python ovito后处理课程,或lammps一对一课程。lammps金属变形模拟中,可能会产生堆垛层错或者孪晶等结构,但是ovito免费版本无法统计这些结构的数量。使用python和ovito软件包,则可以方便的统计出这些结构的数量。大家好,我是小马老师。

lammps_jiayou的博客 466

tesseract-ocr 使用简介

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

一地鸡毛 1493

[AI8051U入门第一步]环境安装和按键控制流水灯

本文介绍了AI8051U单片机的开发环境搭建及GPIO应用。主要内容包括:1)通过ISP软件完成Keil开发环境配置;2)AI8051U特性介绍,包括32位8051内核、浮点运算单元及丰富外设;3)GPIO输入输出模式解析,并附流水灯控制代码;4)提供完整的系统初始化、延时函数及LED控制代码实现。文章配套资源包含完整工程代码,适用于智能硬件及物联网开发。

sinat_58149788的博客 671

ocr tesseract

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

锄禾日当午 1182

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

android 蓝牙通讯demo

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

光学字符识别 OCR

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

2536

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

[转]浅谈OCR之Tesseract

转载请注明出处:http://www.cnblogs.com/brooks-dotnet/archive/2010/10/05/1844203.html 浅谈OCR之Tesseract 光学字符识别(OCR,Optical Character Recognition)是指对文本资料进行扫描,然后对图像文件进行分析处理,获取文字及版面信息的过程。OCR技术非常专业,一般多是...

weixin_30483697的博客 170

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

上一篇: WPF学习:Slider — 冒泡显示值
下一篇: NET框架下如何使用PaddleOCRSharp
BeanGo
博客等级 码龄10年 931粉丝 167原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BeanGo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值