C# 扫描并读取图片中的文字(.NET Core)

2023-09-13 08:54:20

本文介绍如何通过C# 程序来扫描并读取图片中的文字,这里以创建一个.Net Core程序为例。下面是具体步骤,供参考。

程序测试环境:

Visual Studio版本要求不低于2017
图片扫描工具:Spire.OCR for .NET
图片格式:png(这里的图片格式支持JPG、PNG、GIF、BMP、TIFF等格式)
扫描的图片文字:中文(另可支持中文、英语、日语、韩语、德语、法语等)
.Net Core 2.1
详细步骤

1. 创建一个.Net Core控制台应用程序。

2. 通过NuGet添加依赖

(1)在【解决方案资源管理器】中,鼠标右键点击【依赖项】,选择【管理NuGet程序包】

(2)在弹出的界面中,选择【浏览】-在搜索框中输入Spire.OCR,点击“安装”

在依次弹出的2个窗口中选择“确定”和“我接受”

(3)完成后,可查看到已添加的依赖项

3.复制dll

情况1:如果为.net core 3.0及以上版本,则从bin\Debug\netcoreapp3.0\runtimes\win-x64\native文件夹中复制如图中的6个dll文件到程序运行路径bin\Debug\netcoreapp3.0;

情况2:如果是.net core 3.0以下版本(如本文本中的测试环境),则需要 下载Spire.OCR包,并解压,将该文件路径Spire.OCR\Spire.OCR_Dependency\x64中的6个dll复制到程序运行路径F:\VS2017project\ReadTextFromImg_OCR\ReadTextFromImg_OCR\bin\Debug\netcoreapp2.1

4.完成以上操作后,可参考如下代码内容,读取图片上的文本内容

using Spire.OCR;
using System.IO;

namespace ReadTextFromImg_OCR
{
    class Program
    {
        static void Main(string[] args)
        {
            OcrScanner scanner = new OcrScanner();
            scanner.Scan("image.png");
            File.WriteAllText("output.txt", scanner.Text.ToString());
        }
    }
}

测试图片:

测试结果

注意事项:目前,该OCR控件仅支持64位系统!

更多推荐

9.18号作业

完善登录框点击登录按钮后,判断账号(admin)和密码(123456)是否一致,如果匹配失败,则弹出错误对话框,文本内容“账号密码不匹配,是否重新登录”,给定两个按钮ok和cancel,点击ok后,会清除密码框中的内容,继续进行登录;如果点击cancel按钮,则关闭界面。如果账号和密码匹配,则弹出信息对话框,给出提示信

函数式编程汇总

目录一.Lambda表达式实例省略规则二.Stream流案例数据准备入门实例调试技巧常用操作创建流1.单例集合2.数组3.双列集合中间操作1.filter2.map3.distinct4.sorted5.limit7.flatMap终结操作1.forEach2.count3.max&min4.collect查找与匹配1

Vue中如何封装组件,如何进行跨组件通信

封装组件和跨组件通信是Vue.js中非常重要的概念,它们有助于构建模块化、可维护和可扩展的应用程序。本文将深入讨论如何在Vue中封装组件以及如何实现跨组件通信,同时提供示例代码来帮助您更好地理解这些概念。第一部分:Vue组件的封装在Vue中,组件是可复用的UI元素,可以将其封装成独立的模块,以便在应用程序中多次使用。组

WRF高精度气象模拟

气候是多个领域(生态、水资源、风资源及碳中和等问题)的主要驱动因素,合理认知气候变化有利于解释生态环境变化机理及过程,而了解现在、未来气候变化则是进行生态、环境及能源评估、碳政策规划的先决条件,而气候模拟是获取高精度气候信息的最主要手段,现代生态、水文、新能源及碳中和领域需要亚公里及更高分辨率的气象模拟,WRF模式是国

Java的abstract应用和代理模式应用

记录:474场景:Java的abstract应用,一个抽象类,多个实现类。Java代理模式应用,使用代理模式执行具体实现类,在代理类中做日志等记录。版本:JDK1.8。1.一个Java抽象类(1)说明使用Java关键字abstract修饰的类,就是抽象类。使用Java关键字abstract修饰的方法,就是抽象方法。抽象

linux 解决发现不到的 内存占用率

1、问题浮现项目做久了,你往往会遇到一些稀奇古怪的问题。下面咱就来聊聊关于内存无故使用率变大的真相。事情是这样的,最近一个客户的服务器,内存使用率在90%左右,这很不正常,导致某云的云安全中心一直报警,开始的时候没有关注。后面,有一个项目需要紧急上线,并且项目相当吃cpu和内存。于是,问题就出来了。90%的内存,系统是

Python数据分析之Excel

openpyxl库1、openpyxl概述2、Excel写入2.1、新建2.2、添加数据2.3、单元格格式3、Excel读取4、openpyxl操作Excel之CRUD4.1、查4.2、改4.3、删1、openpyxl概述openpyxl是一个用于处理xlsx格式Excel表格文件的第三方python库,几乎支持Exc

CocoaPods 在iOS开发中养活了这么多项目,它到底是个啥? | 京东云技术团队

对于iOS开发者而言,CocoaPods并不陌生,通过pod相关的命令操作,就可以很方便的将项目中用到的三方依赖库资源集成到项目环境中,大大的提升了开发的效率。CocoaPods作为iOS项目的包管理工具,它在命令行背后做了什么操作?而又是通过什么样的方式将命令指令声明出来供我们使用的?这些实现的背后底层逻辑是什么?都

基于Hadoop的疫情信息分析与可视化研究——包含大屏可视化及预测算法

需要本项目的全套环境、代码、文档、资源、数据和部署调试的私信博主!!!本研究基于中国新冠疫情2020-01-11至2022-12-20的全国整体数据进行疫情大数据分析,通过对历史的数据进行大数据分析,可以有效的掌握过去疫情数据的特点,便于对疫情之后的防控提供更好的决策。本次研究的数据集,来自于国内卫健委疫情官方数据集,

Kubernetes网络插件Canal的工作原理和关键功能

文章目录什么是Canal?安装Canal配置网络策略使用Canal进行跨节点通信总结🎈个人主页:程序员小侯🎐CSDN新晋作者🎉欢迎👍点赞✍评论⭐收藏✨收录专栏:云计算✨文章内容:网络插件Canal🤝希望作者的文章能对你有所帮助,有不足的地方请在评论区留言指正,大家一起学习交流!🤗Kubernetes(简称K

在TensorFlow中使用GAN生成图像

一、说明本文详细论述,如何在tensorflow下,在mnist数据集合上进行GAN实现。包括:框架建立、数据集读出、生成器、鉴别器、代价函数、优化等具体步骤的代码实现。二、GAN框架介绍生成器:此组件负责生成新图像。鉴别器:此组件评估生成的图像的质量。我们将开发的使用GAN生成图像的一般架构如下图所示。以下部分简要介

热文推荐