最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#版Tesseract庫的使用技巧

 更新時間:2021年05月25日 08:24:26   作者:小y  
本文給大家分享C#版Tesseract庫的使用技巧,在這里大家需要注意一下tesseract的識別語言包要自己下載后包含到項(xiàng)目里面,并設(shè)置為始終復(fù)制,或者直接把這個文件包放到運(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)目后如:

我們再添加一個winform項(xiàng)目,畫界面如:

實(shí)現(xiàn)點(diǎn)擊“選擇需要識別的圖片”,打開一張圖片,調(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識別方法
        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;
                }
            }
        }
        //調(diào)用tesseract實(shí)現(xiàn)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();
                    }
                }
            }
        }
    }
}

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

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

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

這個庫支持100種語言的識別

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

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

//用opencv進(jìn)行降噪處理再ocr識別
        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;
        }

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

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

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

相關(guān)文章

最新評論

永宁县| 陆川县| 青州市| 哈尔滨市| 沙河市| 双桥区| 肇东市| 太谷县| 合作市| 怀柔区| 南岸区| 霸州市| 衡东县| 巫山县| 苗栗市| 吴桥县| 巴彦淖尔市| 涡阳县| 张家界市| 玛多县| 临夏县| 应用必备| 南城县| 纳雍县| 裕民县| 理塘县| 青州市| 乐亭县| 新疆| 宁乡县| 南和县| 雅安市| 沙洋县| 黄山市| 合水县| 上思县| 博乐市| 福州市| 柘荣县| 个旧市| 册亨县|