亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C#版Tesseract庫的使用技巧

 更新時(shí)間:2021年05月25日 08:24:26   作者:小y  
本文給大家分享C#版Tesseract庫的使用技巧,在這里大家需要注意一下tesseract的識(shí)別語言包要自己下載后包含到項(xiàng)目里面,并設(shè)置為始終復(fù)制,或者直接把這個(gè)文件包放到運(yùn)行程序目錄(bin\debug)下的,具體實(shí)現(xiàn)代碼跟隨小編一起學(xué)習(xí)下吧

上一篇介紹了Tesseract庫的使用(OCR庫Tesseract初探),文末提到了Tesseract是用c/c++開發(fā)的,也有C#的開源版本,本篇介紹一下如何使用C#版的Tesseract。

C#版本源碼下載地址:https://github.com/charlesw/tesseract

其實(shí)在vs中可以直接用NuGet工具進(jìn)行下載:

打開nuget,搜索tesseract,點(diǎn)安裝即可。

源碼是vs2015編譯的,需要安裝vs2015以上版本。

打開項(xiàng)目后如:

我們?cè)偬砑右粋€(gè)winform項(xiàng)目,畫界面如:

實(shí)現(xiàn)點(diǎn)擊“選擇需要識(shí)別的圖片”,打開一張圖片,調(diào)用算法并顯示結(jié)果。比較簡單。源碼如下:

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();
        }
        //選圖片并調(diào)用ocr識(shí)別方法
        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 = "無法識(shí)別";
                }
                else
                {
                    txtResult.Text = strResult;
                }
            }
        }
        //調(diào)用tesseract實(shí)現(xiàn)OCR識(shí)別
        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();
                    }
                }
            }
        }
    }
}

有一點(diǎn)要注意的是,tesseract的識(shí)別語言包要自己下載后包含到項(xiàng)目里面,并設(shè)置為始終復(fù)制,或者直接把這個(gè)文件包放到運(yùn)行程序目錄(bin\debug)下:

eng是英文字符的意思,要識(shí)別其他語言字符,需要自己下載:

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

這個(gè)庫支持100種語言的識(shí)別

字庫下載地址為:https://github.com/tesseract-ocr/tessdata

用OpencvSharp先降噪再調(diào)OCR識(shí)別:

//用opencv進(jìn)行降噪處理再ocr識(shí)別
        private void button3_Click(object sender, EventArgs e)
        {
            //從網(wǎng)上讀取一張圖片
            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);
            //閾值操作 閾值參數(shù)可以用一些可視化工具來調(diào)試得到
            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>
        /// 從網(wǎng)上讀取一張圖片
        /// </summary>
        /// <param name="Url"></param>
        public MemoryStream ReadImgFromWeb(string Url)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
            request.Credentials = CredentialCache.DefaultCredentials; // 添加授權(quán)證書
            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;
        }

請(qǐng)自行用NuGet程序下載opencvsharp3.0庫,參考https://www.cnblogs.com/tuyile006/p/10819570.html

另外專門有篇文章介紹中文識(shí)別:Tesseract-OCR識(shí)別中文與訓(xùn)練字庫實(shí)例

以上就是C#版Tesseract庫的使用技巧的詳細(xì)內(nèi)容,更多關(guān)于C# Tesseract庫的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • C#打印日志的方法總結(jié)

    C#打印日志的方法總結(jié)

    在本篇文章里小編給大家整理了關(guān)于C#如何打印日志的技巧總結(jié),需要的朋友們跟著學(xué)習(xí)下。
    2019-03-03
  • C# 實(shí)現(xiàn)特殊字符快速轉(zhuǎn)碼

    C# 實(shí)現(xiàn)特殊字符快速轉(zhuǎn)碼

    這篇文章主要介紹了C# 實(shí)現(xiàn)特殊字符快速轉(zhuǎn)碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • C#中API調(diào)用的多種方法

    C#中API調(diào)用的多種方法

    今天通過本文給大家分享C#中API調(diào)用的多種方法,通過API進(jìn)行解析掃入的二維碼,實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2021-09-09
  • C#實(shí)現(xiàn)字符串轉(zhuǎn)換成字節(jié)數(shù)組的簡單實(shí)現(xiàn)方法

    C#實(shí)現(xiàn)字符串轉(zhuǎn)換成字節(jié)數(shù)組的簡單實(shí)現(xiàn)方法

    這篇文章主要介紹了C#實(shí)現(xiàn)字符串轉(zhuǎn)換成字節(jié)數(shù)組的簡單實(shí)現(xiàn)方法,僅一行代碼即可搞定,非常簡單實(shí)用,需要的朋友可以參考下
    2015-05-05
  • C#實(shí)現(xiàn)帶搜索功能的ComboBox

    C#實(shí)現(xiàn)帶搜索功能的ComboBox

    這篇文章主要為大家詳細(xì)介紹了C#如何實(shí)現(xiàn)帶搜索功能的ComboBox,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • c#語言使用Unity粒子系統(tǒng)制作手雷爆炸

    c#語言使用Unity粒子系統(tǒng)制作手雷爆炸

    這篇文章主要為大家介紹了Unity的粒子系統(tǒng)由粒子發(fā)射器、粒子動(dòng)畫器、粒子渲染器組成,通過使用一或兩個(gè)紋理多次繪制,創(chuàng)造一個(gè)混沌的效果,通過復(fù)習(xí)粒子系統(tǒng)做一個(gè)手雷和實(shí)彈投擲現(xiàn)場(chǎng)
    2022-04-04
  • C#調(diào)用第三方工具完成FTP操作

    C#調(diào)用第三方工具完成FTP操作

    這篇文章介紹了C#調(diào)用第三方工具完成FTP操作的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • C#表達(dá)式樹Expression動(dòng)態(tài)創(chuàng)建表達(dá)式

    C#表達(dá)式樹Expression動(dòng)態(tài)創(chuàng)建表達(dá)式

    這篇文章介紹了C#表達(dá)式樹Expression動(dòng)態(tài)創(chuàng)建表達(dá)式的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • C#中泛型舉例List<T>與DataTable相互轉(zhuǎn)換

    C#中泛型舉例List<T>與DataTable相互轉(zhuǎn)換

    這篇文章介紹了C#中泛型舉例List<T>與DataTable相互轉(zhuǎn)換的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • C#9.0 新特性簡介

    C#9.0 新特性簡介

    這篇文章主要介紹了C#9.0 新特性簡介,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10

最新評(píng)論