iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C#OCR实现文字识别功能
  • 606
分享到

C#OCR实现文字识别功能

C#OCR文字识别C#文字识别C#OCR 2022-11-21 22:11:59 606人浏览 八月长安
摘要

目录简介效果预览核心库概述问题源码界面布局后台逻辑简介 OCR英文全称是Optical Character Recognition,中文叫做光学字符识别。它是利用光学技术和计算机技术

简介

OCR英文全称是Optical Character Recognition,中文叫做光学字符识别。它是利用光学技术和计算机技术把印在或写在纸上的文字读取出来,并转换成一种计算机能够接受、人又可以理解的格式。文字识别是计算机视觉研究领域的分支之一。

效果预览

核心库概述

NuGet包:PaddleOCRSharp

引用此包后会自动加载进所需的第三方依赖包

OCR文字识别库有很多,包括在线的,比较好的是百度的,为什么选用这个主要是,考虑的离线环境,PaddleOCR 的识别率还是不错的。

问题

在使用的时候也遇到了一些问题,比如 内存释放不及时 等

底层的c++逻辑对内存的管理有一些小瑕疵,会有内存溢出的问题,通常不会出现

源码

界面布局

<Window x:Class="PaddleOCRWPF.MainWindow"
        xmlns="Http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:mc="http://schemas.openxmlfORMats.org/markup-compatibility/2006"
        mc:Ignorable="d"
        Title="OCR离线版" Height="450" Width="900" windowstartupLocation="CenterScreen">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="0.5*"/>
            <ColumnDefinition/>
        </Grid.ColumnDefinitions>
        <GroupBox Grid.Column="0" Header="预览" Margin="10,10,5,10">
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="1*"/>
                </Grid.RowDefinitions>
                <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Margin="0,5">
                    <Button x:Name="BtnOCR" Content="打开图片" Height="30" Width="120" Margin="0,0,10,0" Click="BtnOCR_Click"/>
                    <Button x:Name="BtnClose" Content="清除" Height="30" Width="120" Click="BtnClose_Click"/>
                </StackPanel>
                <Image Name="ImgPreview" Grid.Row="1" Margin="5"/>
            </Grid>
        </GroupBox>
        <GroupBox Grid.Column="1" Header="识别结果" Margin="5,10,10,10">
            <TextBox x:Name="TxtPreview" TextWrapping="Wrap" BorderThickness="0" IsReadOnly="True"/>
        </GroupBox>
    </Grid>
</Window>

后台逻辑

using Microsoft.Win32;
using PaddleOCRSharp;
using System;
using System.Drawing;
using System.IO;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Media.Imaging;

namespace PaddleOCRWPF
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void BtnOCR_Click(object sender, RoutedEventArgs e)
        {
            StartDistinguish();
        }

        private void BtnClose_Click(object sender, RoutedEventArgs e)
        {
            ImgPreview.Source = null;
            TxtPreview.Text = "";
        }

        /// <summary>
        /// 调用核心
        /// </summary>
        private void StartDistinguish()
        {
            OpenFileDialog openFile = new()
            {
                Filter = "图片(*.bmp;*.jpg;*.jpeg;*.png)|*.bmp;*.jpg;*.jpeg;*.png"
            };

            if (!(bool)openFile.ShowDialog()) return;

            Dispatcher.BeginInvoke(new Action(() =>
            {
                ImgPreview.Source = new Bitmapimage(new Uri(openFile.FileName, UriKind.RelativeOrAbsolute));
            }));

            Task.Run(() =>
            {
                var imagebyte = File.ReadAllBytes(openFile.FileName);

                Bitmap bitmap = new(new MemoryStream(imagebyte));

                OCRModelConfig? config = null;

                OCRParameter oCRParameter = new();
                OCRResult ocrResult = new();

                using (PaddleOCREngine engine = new(config, oCRParameter))
                {
                    ocrResult = engine.DetectText(bitmap);
                }
                if (ocrResult != null)
                {
                    Dispatcher.BeginInvoke(new Action(() =>
                    {
                        TxtPreview.Text = ocrResult.Text;
                    }));
                }
            });
        }
    }
}

到此这篇关于C# OCR实现文字识别功能的文章就介绍到这了,更多相关C# OCR文字识别内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C#OCR实现文字识别功能

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C#OCR实现文字识别功能
    目录简介效果预览核心库概述问题源码界面布局后台逻辑简介 OCR英文全称是Optical Character Recognition,中文叫做光学字符识别。它是利用光学技术和计算机技术...
    99+
    2022-11-21
    C# OCR文字识别 C# 文字识别 C# OCR
  • Unity实现OCR文字识别功能
    首先登陆百度开发者中心,搜索文字识别服务: 创建一个应用,获取AppID、APIKey、SecretKey秘钥信息: 下载C# SDK,将AipSdk.dll动态库导入Unit...
    99+
    2022-11-12
  • Unity怎么实现OCR文字识别功能
    今天就跟大家聊聊有关Unity怎么实现OCR文字识别功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。首先登陆百度开发者中心,搜索文字识别服务:创建一个应用,获取AppID、APIK...
    99+
    2023-06-22
  • SpringBoot+OCR 实现图片文字识别
    本篇介绍的是基于百度人工智能接口的文字识别实现。 1. 注册百度云,获得AppID 此处百度云非百度云盘,而是百度智能云。 大家可进入https://cloud.baidu.com/...
    99+
    2022-11-12
  • android ocr——身份证识别的功能实现
    ocr OpenCV 想必做过程图像识别的同学们都对这两个词不陌生吧。 ocr (optical character recognition ,光学字符识别) 是指电子设备(例...
    99+
    2022-06-06
    ocr 身份证 Android
  • 如何使用Python实现图像文字识别OCR
    要使用Python实现图像文字识别OCR,可以使用以下步骤: 安装Tesseract OCR引擎 Tesseract是一种开源OCR引擎,可以处理多种语言和字体。要使用Python进行OCR,需要安装Tesseract OCR引擎。安装...
    99+
    2023-09-09
    python opencv 计算机视觉 Powered by 金山文档
  • 不到十行实现javaCV图片OCR文字识别
    spring boot项目pom文件中添加以下依赖  <!-- https://mvnrepository.com/artifact/org.bytedeco...
    99+
    2022-11-12
  • 基于Python实现图像文字识别OCR工具
    目录引言功能列表OCR部分界面部分软件代码参考链接引言 最近在技术交流群里聊到一个关于图像文字识别的需求,在工作、生活中常常会用到,比如票据、漫画、扫描件、照片的文本提取。 博主基于...
    99+
    2022-11-12
  • 【项目管理】Java OCR实现图片文字识别
    【项目管理】Java OCR实现图片文字识别 1.项目前言1.1 项目需求1.2 OCR引擎选择1.3 Tess4j介绍 2.项目实现2.1 项目搭建2.2 主要实现代码 3.效果演示...
    99+
    2023-09-03
    Java Swing OCR Tess4J 文字识别
  • 如何在java项目中利用ocr实现一个图片文字识别功能
    这期内容当中小编将会给大家带来有关如何在java项目中利用ocr实现一个图片文字识别功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。最近在开发的时候需要识别图片中的一些文字,网上找了相关资料之后,发现g...
    99+
    2023-05-31
    java ocr ava
  • 如何用Python实现图像文字识别OCR工具
    这篇文章主要介绍“如何用Python实现图像文字识别OCR工具”,在日常操作中,相信很多人在如何用Python实现图像文字识别OCR工具问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何用Python实现图像...
    99+
    2023-06-22
  • 十行Python代码实现文字识别功能
    目录1.环境和配置要求百度接口2.具体实现步骤获取截图调用Baidu aip识别并打印文字调用打包程序生成专属识别文字小程序今天给大家分享的主题是用百度的接口实现图片的文字识别。 1...
    99+
    2022-11-11
  • 怎么用Python代码实现文字识别功能
    今天小编给大家分享一下怎么用Python代码实现文字识别功能的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1.环境和配置要求...
    99+
    2023-06-30
  • 如何在Java项目中使用OCR tesseract实现一个图文识别功能
    如何在Java项目中使用OCR tesseract实现一个图文识别功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。代码:package com.zhy.test; im...
    99+
    2023-05-31
    java ocr tesseract ava
  • php如何实现识别错别字功能
    本篇内容主要讲解“php如何实现识别错别字功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php如何实现识别错别字功能”吧!首先,PHP内置了一些字符串操作函数,其中就包括字符替换函数。我们可...
    99+
    2023-07-05
  • python实战教程之OCR文字识别方法汇总
    目录方法一: 使用easyocr模块方法二:通过pytesseract调用tesseractTesseract的安装与使用pytesseractcnocr 第二种 Python 开源...
    99+
    2023-05-18
    python ocr文字识别 ocr文字识别算法 python ocr库
  • C#使用Tesseract进行Ocr识别的方法实现
    目录1.Nuget搜索Tesseract2.项目安装Tesseract3.引用命名空间4.上Github下载别人的训练库5.选择图片进行识别1.Nuget搜索Tesseract 2...
    99+
    2022-11-13
  • 基于Python实现对PDF文件的OCR识别
    最近在做一个项目的时候,需要将PDF文件作为输入,从中输出文本,然后将文本存入数据库中。为此,我找寻了很久的解决方案,最终才确定使用tesseract。所以不要浪费时间了,我们开始吧。 1.安装tesser...
    99+
    2022-06-04
    文件 Python PDF
  • c++图像识别功能怎么实现
    要实现C++图像识别功能,你可以使用图像处理库和机器学习库来完成。以下是一种可能的实现方法: 安装和配置OpenCV库:Open...
    99+
    2023-10-24
    c++
  • python+opencv实现文字颜色识别与标定功能
            最近接了一个比较简单的图像处理的单子,花了一点时间随便写了一下:  数据集客户没有是自...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作