返回顶部
首页 > 资讯 > 精选 >C#版中Tesseract库有什么用
  • 945
分享到

C#版中Tesseract库有什么用

2023-06-15 05:06:57 945人浏览 薄情痞子
摘要

这篇文章主要介绍了C#版中Tesseract库有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。其实在vs中可以直接用NuGet工具进行下载:打开nuget,搜索tess

这篇文章主要介绍了C#版中Tesseract库有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

其实在vs中可以直接用NuGet工具进行下载:

打开nuget,搜索tesseract,点安装即可。

C#版中Tesseract库有什么用

源码是vs2015编译的,需要安装vs2015以上版本。

打开项目后如:

C#版中Tesseract库有什么用

我们再添加一个winform项目,画界面如:

C#版中Tesseract库有什么用

实现点击“选择需要识别的图片”,打开一张图片,调用算法并显示结果。比较简单。源码如下:

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.windows.FORMs;using Tesseract;namespace TesseractDemo{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        //选图片并调用ocr识别方法        private void btnRec_Click(object sender, EventArgs e)        {            //openFileDialog1.Filter = "";            if (openFileDialog1.ShowDialog() == DialogResult.OK)            {                var imgPath = openFileDialog1.FileName;                pictureBox1.Image=Image.FromFile(imgPath);                string strResult = ImageToText(imgPath);                if (string.IsNullOrEmpty(strResult))                {                    txtResult.Text = "无法识别";                }                else                {                    txtResult.Text = strResult;                }            }        }        //调用tesseract实现OCR识别        public string ImageToText(string imgPath)        {            using (var engine = new TesseractEngine("tessdata", "eng", EngineMode.Default))            {                using (var img = Pix.LoadFromFile(imgPath))                {                    using (var page = engine.Process(img))                    {                        return page.GetText();                    }                }            }        }    }}

有一点要注意的是,tesseract的识别语言包要自己下载后包含到项目里面,并设置为始终复制,或者直接把这个文件包放到运行程序目录(bin\debug)下:

C#版中Tesseract库有什么用

eng是英文字符的意思,要识别其他语言字符,需要自己下载:

Tesseract hasunicode (UTF-8) support, and canrecognize more than 100 languages"out of the box".

这个库支持100种语言的识别

字库下载地址为:https://GitHub.com/tesseract-ocr/tessdata

OpenCVSharp先降噪再调OCR识别:

//用opencv进行降噪处理再ocr识别        private void button3_Click(object sender, EventArgs e)        {            //从网上读取一张图片            string imgUrl = "Https://service.cheshi.com/user/validate/validatev3.PHP";            MemoryStream ms = ReadImgFromWEB(imgUrl);            Image img = Image.FromStream(ms);            pictureBox1.Image = img;            //降噪            Mat simg = Mat.FromStream(ms, ImreadModes.Grayscale);            Cv2.ImShow("Input Image", simg);            //阈值操作 阈值参数可以用一些可视化工具来调试得到            Mat ThresholdImg = simg.Threshold(29, 255, ThresholdTypes.Binary);            Cv2.ImShow("Threshold", ThresholdImg);            Cv2.ImWrite("d:\\img.png", ThresholdImg);                        textBox1.Text= ImageToText("d:\\img.png");        }                /// <summary>        /// 从网上读取一张图片        /// </summary>        /// <param name="Url"></param>        public MemoryStream ReadImgFromWeb(string Url)        {            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);            request.Credentials = CredentialCache.DefaultCredentials; // 添加授权证书            request.UserAgent = "Microsoft Internet Explorer";            WebResponse response = request.GetResponse();            Stream s = response.GetResponseStream();            byte[] data = new byte[1024];            int length = 0;            MemoryStream ms = new MemoryStream();            while ((length = s.Read(data, 0, data.Length)) > 0)            {                ms.Write(data, 0, length);            }            ms.Seek(0, SeekOrigin.Begin);            //pictureBox1.Image = Image.FromStream(ms);            return ms;        }

C#是什么

C#是一个简单、通用、面向对象编程语言,它由微软Microsoft开发,继承了C和c++强大功能,并且去掉了一些它们的复杂特性,C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程从而成为.net开发的首选语言,但它不适用于编写时间急迫或性能非常高的代码,因为C#缺乏性能极高的应用程序所需要的关键功能。

感谢你能够认真阅读完这篇文章,希望小编分享的“C#版中Tesseract库有什么用”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!

--结束END--

本文标题: C#版中Tesseract库有什么用

本文链接: https://lsjlt.com/news/277824.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C#版中Tesseract库有什么用
    这篇文章主要介绍了C#版中Tesseract库有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。其实在vs中可以直接用NuGet工具进行下载:打开nuget,搜索tess...
    99+
    2023-06-15
  • C#版Tesseract库的使用技巧
    上一篇介绍了Tesseract库的使用(OCR库Tesseract初探),文末提到了Tesseract是用c/c++开发的,也有C#的开源版本,本篇介绍一下如何使用C#版的Tesse...
    99+
    2024-04-02
  • c#中tesseract的作用是什么
    在C#中,Tesseract是一个开源的OCR(Optical Character Recognition)引擎,可以用来识别图像中...
    99+
    2024-04-02
  • c#中tesseract的用法是什么
    在C#中使用Tesseract进行文本识别的步骤如下: 安装Tesseract OCR引擎:首先需要下载并安装Tesseract...
    99+
    2024-04-02
  • 如何使用C#版的Tesseract
    这篇文章主要介绍了如何使用C#版的Tesseract,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。C#版本源码下载地址:https://github.com/charlesw...
    99+
    2023-06-15
  • Python中的Python-tesseract有什么作用
    这篇文章主要介绍“Python中的Python-tesseract有什么作用”,在日常操作中,相信很多人在Python中的Python-tesseract有什么作用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答...
    99+
    2023-06-02
  • c#中tesseract的功能有哪些
    在C#中,使用Tesseract库可以实现如下功能: 文字识别:Tesseract库可以将图像中的文本内容识别为可编辑的文本。 多...
    99+
    2024-04-02
  • c#中tesseract报错怎么解决
    在使用Tesseract时可能会遇到各种报错,以下是一些常见的解决方法: 语言包路径错误:如果报错是关于语言包路径的问题,需要确保...
    99+
    2024-04-02
  • C#中log4net有什么用
    这篇文章给大家分享的是有关C#中log4net有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Log4net是一个第三方开源组件,它设计的主要目的是组合,生成日志信息,同时将配置保存到各种存储介质或者展现平...
    99+
    2023-06-17
  • C#中ManagementObjectSearcher有什么用
    ManagementObjectSearcher是C#中的一个类,用于在Windows管理对象中进行查询操作。它可用于获取指定条件下...
    99+
    2023-10-19
    C#
  • C++中adjusttokenprivileges有什么用
    在C++中,`AdjustTokenPrivileges`函数用于改变访问令牌的权限。访问令牌是一个用于验证用户身份和授权访问资源的...
    99+
    2023-10-28
    C++
  • C#中接口有什么用
    这期内容当中小编将会给大家带来有关C#中接口有什么用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。C#接口的作用解释实例:public interface IBark &nb...
    99+
    2023-06-17
  • C++中队列有什么用
    这篇文章主要介绍C++中队列有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1. 队列的概念及结构队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First ...
    99+
    2023-06-25
  • C++中stringstream类有什么用
    stringstream类是C++标准库中的一个类,用于将字符串转换为其他类型的值,或者将其他类型的值转换为字符串。stringst...
    99+
    2023-08-25
    C++ stringstream
  • c++中的\n有什么用
    转义字符 "\n" 在 c++ 中的作用是换行符,用于在文本输出中强制换行,以便文本输出换到下一行。它还用于创建多行字符串,控制输出格式和执行文件写入操作。 C++ 中的 \n 的作用...
    99+
    2024-05-01
    c++
  • c++中的cin有什么用
    c++kquote>c++ 中 cin 用于从标准输入(键盘)读取数据。其用法包括:与输入源关联:cin.tie(&cout);根据数据类型使用运算符读取数据:整数:>...
    99+
    2024-05-01
    c++ 标准库
  • python中gitlab库有什么用
    安装首先需要安装 python-gitlab 库pip 安装sudo pip install --upgrade python-gitlab源码安装git clone https://github.com/python-gitlab/pyt...
    99+
    2023-05-16
    Python gitlab
  • c++中loki库的用法是什么
    Loki是一个开源的C++库,提供了一些通用的设计模式和工具,用于简化C++编程。下面是一些常见的Loki库的用法: Singl...
    99+
    2023-10-25
    c++ loki
  • c++中eigen库的用法是什么
    Eigen是一个C++模板库,用于线性代数运算。它提供了各种矩阵和向量操作的功能,例如矩阵乘法、求逆、特征值分解等。Eigen库可以...
    99+
    2024-03-12
    c++ eigen
  • C# 中Employee对象有什么用
    今天就跟大家聊聊有关C# 中Employee对象有什么用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。C# Employee对象我们将创建一个函数来遍历模型空间,以用来查找加入的C#...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作