欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#?手寫識別的實現(xiàn)示例

 更新時間:2023年08月24日 15:13:49   作者:qw_6918966011  
本文主要介紹了C#?手寫識別的實現(xiàn)示例,文章詳細介紹了如何使用C#語言調(diào)用OpenCV庫實現(xiàn)手寫識別,并通過示例程序展示了整個手寫識別過程,感興趣的可以了解一下

書寫識別,網(wǎng)上的大佬們都有輸出。

書寫識別存在的2個問題:

我結(jié)合之前開發(fā)經(jīng)驗,整理下書寫識別比較完善的方案。

單個字的識別方案

     private List<string> Recognize(StrokeCollection strokes)
     {
         if (strokes == null || strokes.Count == 0)
             return null;
         // 創(chuàng)建識別器
         var recognizers = new Recognizers();
         var chineseRecognizer = recognizers.GetDefaultRecognizer(0x0804);
         using var recContext = chineseRecognizer.CreateRecognizerContext();
         // 根據(jù)StrokeCollection構(gòu)造 Ink 類型的筆跡數(shù)據(jù)。
       using var stream = new MemoryStream();
       strokes.Save(stream);
       using var inkStorage = new Ink();
       inkStorage.Load(stream.ToArray());
       using var inkStrokes = inkStorage.Strokes;
       //設(shè)置筆畫數(shù)據(jù)
       using (recContext.Strokes = inkStrokes)
       {
           //識別筆畫數(shù)據(jù)
           var recognitionResult = recContext.Recognize(out var statusResult);
           // 如果識別過程中出現(xiàn)問題,則返回null
           return statusResult == RecognitionStatus.NoError ?
               recognitionResult.GetAlternatesFromSelection().OfType<RecognitionAlternate>().Select(i => i.ToString()).ToList() :
               null;
       }
   }

這里單字識別,想要提高識別率,可以將stroke合并成一個:

var points = new StylusPointCollection();
    foreach (var stroke in strokes)
    {
        points.Add(new StylusPointCollection(stroke.StylusPoints));
    }
    var newStroke = new StrokeCollection
    {
        new Stroke(points)
    };

多字的識別方案

 public IEnumerable<string> Recognize(StrokeCollection strokes)
     {
         if (strokes == null || strokes.Count == 0)
             return null;
         using var analyzer = new InkAnalyzer();
         analyzer.AddStrokes(strokes,0x0804);
         analyzer.SetStrokesType(strokes, StrokeType.Writing);
         var status = analyzer.Analyze();
       if (status.Successful)
       {
           var alternateCollection = analyzer.GetAlternates();
           return alternateCollection.OfType<AnalysisAlternate>().Select(x => x.RecognizedString);
       }
       return null;
   }
 

看下效果圖

環(huán)境及DLL引用

引用的命名空間是:Windows.Ink和MicroSoft.Ink,需要引用的DLL文件有四個。

  • IACore.dll、IALoader.dll、IAWinFX.dll,這三個DLL文件都是Intel集成顯卡驅(qū)動的重要組成部分,包含了圖形處理模塊,尤其是IAWinFX為WPF應(yīng)用提供了支持硬件加速的圖形渲染。
  • Microsoft.Ink.dll

值得說明一下,Windows.Ink與Microsoft.Ink在平臺支持上不同,如果有要適配不同版本的windows,需要去上方代碼修改下

  • Microsoft.Ink支持Windows XP、Vista 和 Win7 等舊版 Windows,兼容性高。但Win10及以上版本,官方推薦使用Windows.Ink
  • Windows.Ink,則僅支持Win8以上版本

引用了上面4個DLL文件后,還有2個環(huán)境問題:

  • 在App.config文件中,對節(jié)點startup添加屬性 useLegacyV2RuntimeActivationPolicy="true"
  • 修改項目配置為x86

到此這篇關(guān)于C# 手寫識別的實現(xiàn)示例的文章就介紹到這了,更多相關(guān)C# 手寫識別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#實現(xiàn)將PPT轉(zhuǎn)換成HTML的方法

    C#實現(xiàn)將PPT轉(zhuǎn)換成HTML的方法

    這篇文章主要介紹了C#實現(xiàn)將PPT轉(zhuǎn)換成HTML的方法,非常實用的功能,需要的朋友可以參考下
    2014-08-08
  • C#中基數(shù)排序算法的原理及實現(xiàn)

    C#中基數(shù)排序算法的原理及實現(xiàn)

    基數(shù)排序算法是一種非比較式的排序方法,通過分配和收集步驟對數(shù)字的每一位進行排序,學(xué)習(xí)基數(shù)排序有助于提高排序效率,解決特定問題,廣泛應(yīng)用于多個領(lǐng)域如數(shù)據(jù)分析和數(shù)據(jù)庫索引建立等
    2024-10-10
  • Unity實現(xiàn)旋轉(zhuǎn)扭曲圖像特效

    Unity實現(xiàn)旋轉(zhuǎn)扭曲圖像特效

    這篇文章主要為大家詳細介紹了Unity實現(xiàn)旋轉(zhuǎn)扭曲圖像特效,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • C#對Access進行增刪改查的完整示例

    C#對Access進行增刪改查的完整示例

    本文主要是講C#對Access數(shù)據(jù)庫的增刪改查操作,想學(xué)習(xí)C#和Access數(shù)據(jù)庫操作基礎(chǔ)的可以參考借鑒,以下代碼都經(jīng)過實踐測試可用,下面跟著小編一起來看看。
    2016-08-08
  • 淺談c#開發(fā)者應(yīng)該了解的15個特性

    淺談c#開發(fā)者應(yīng)該了解的15個特性

    本文列舉了15個值得了解的C#特性,旨在讓.NET開發(fā)人員更好的使用C#語言進行開發(fā)工作。
    2021-05-05
  • Unity UGUI教程之實現(xiàn)滑頁效果

    Unity UGUI教程之實現(xiàn)滑頁效果

    使用UGUI提供的ScrollRect和ScrollBar組件實現(xiàn)基本滑動以及自己控制每次移動一頁來達到滑頁的效果。具體實現(xiàn)思路請參考下本教程
    2016-04-04
  • 秒表計時器以及STOPWATCH(實例講解)

    秒表計時器以及STOPWATCH(實例講解)

    下面小編就為大家分享一篇秒表計時器以及STOPWATCH(實例講解),具有很好的參考價值,希望對大家有所幫助
    2017-11-11
  • winform 實現(xiàn)控制輸入法

    winform 實現(xiàn)控制輸入法

    在工作中遇到這樣一個問題,在系統(tǒng)使用過程中,輸入法會變灰導(dǎo)致無法使用輸入法輸入文字,就好像輸入法被禁用了沒有啟用似的。對此,在這里做個備錄
    2015-08-08
  • C# Assembly.Load案例詳解

    C# Assembly.Load案例詳解

    這篇文章主要介紹了C# Assembly.Load案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • 解析C#網(wǎng)絡(luò)編程中的Http請求

    解析C#網(wǎng)絡(luò)編程中的Http請求

    這篇文章主要介紹了C#網(wǎng)絡(luò)編程中的Http請求,不過這次也使我對C#網(wǎng)絡(luò)編程了解的更多,算是一次學(xué)習(xí)經(jīng)歷吧,文章結(jié)合示例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2022-03-03

最新評論