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

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

 更新時間:2023年08月24日 15:13:49   作者:qw_6918966011  
本文主要介紹了C#?手寫識別的實現(xiàn)示例,文章詳細(xì)介紹了如何使用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#與設(shè)備接口進(jìn)行無縫通信的實現(xiàn)技巧

    使用C#與設(shè)備接口進(jìn)行無縫通信的實現(xiàn)技巧

    隨著物聯(lián)網(wǎng)、智能設(shè)備和自動化技術(shù)的快速發(fā)展,越來越多的設(shè)備需要與計算機系統(tǒng)進(jìn)行實時通信,而C#作為一門強大的編程語言,憑借其廣泛的庫支持和高效的開發(fā)效率,已成為與設(shè)備接口對接的理想選擇,在本篇文章中,我們將探討如何使用C#與設(shè)備進(jìn)行無縫通信
    2025-01-01
  • C#調(diào)用python腳本的方法詳解

    C#調(diào)用python腳本的方法詳解

    這篇文章主要為大家詳細(xì)介紹了C#調(diào)用python腳本的方法,文中通過示例代碼介紹的非常詳細(xì),感興趣的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-11-11
  • C#中TCP粘包問題的解決方法

    C#中TCP粘包問題的解決方法

    這篇文章主要為大家詳細(xì)介紹了C#中TCP粘包問題的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • C#學(xué)習(xí)筆記整理-迭代器模式介紹

    C#學(xué)習(xí)筆記整理-迭代器模式介紹

    下面小編就為大家分享一篇C#學(xué)習(xí)筆記整理-迭代器模式介紹,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • Unity中的Tilemap流程分析

    Unity中的Tilemap流程分析

    這篇文章給大家介紹Unity中的Tilemap流程分析,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-07-07
  • C#求n個數(shù)中最大值和最小值的方法

    C#求n個數(shù)中最大值和最小值的方法

    這篇文章主要介紹了C#求n個數(shù)中最大值和最小值的方法,涉及C#中max及min方法的使用技巧,需要的朋友可以參考下
    2015-05-05
  • UnityShader使用速度映射圖實現(xiàn)運動模糊

    UnityShader使用速度映射圖實現(xiàn)運動模糊

    這篇文章主要為大家詳細(xì)介紹了UnityShader使用速度映射圖實現(xiàn)運動模糊,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • C#棄元與異步使用與區(qū)別

    C#棄元與異步使用與區(qū)別

    棄元是一種在代碼中用于顯式忽略特定值的占位符,沒有實際存儲空間,也沒有關(guān)聯(lián)的值,本文就來介紹一下C#棄元與異步使用,具有一定的參考價值,感興趣的可以了解一下
    2026-03-03
  • Unity UI拖拽模型選擇功能

    Unity UI拖拽模型選擇功能

    這篇文章主要為大家詳細(xì)介紹了Unity UI拖拽模型選擇功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-01-01
  • C#華氏溫度和攝氏溫度相互轉(zhuǎn)換的方法

    C#華氏溫度和攝氏溫度相互轉(zhuǎn)換的方法

    這篇文章主要介紹了C#華氏溫度和攝氏溫度相互轉(zhuǎn)換的方法,涉及C#數(shù)學(xué)運算的相關(guān)技巧,非常簡單實用,需要的朋友可以參考下
    2015-07-07

最新評論

吴忠市| 广元市| 尤溪县| 博白县| 瑞金市| 南阳市| 嘉善县| 高邑县| 册亨县| 兴业县| 吉林省| 达日县| 旅游| 定边县| 旺苍县| 合肥市| 襄垣县| 泸定县| 垦利县| 文化| 金沙县| 招远市| 甘谷县| 青浦区| 六枝特区| 绥德县| 长葛市| 若羌县| 宁安市| 晴隆县| 阿克苏市| 镇巴县| 同江市| 垦利县| 龙州县| 大港区| 曲沃县| 云梦县| 石阡县| 贡觉县| 陵川县|