C#描述-计算机视觉OpenCV(8):OCR字符检测

文章目录


前言

OCR识别广泛的运用于工业生产与互联网中。本篇从一个C#上位机的视角,来做一下识别测试,虽然现在配套工业相机识别的软件很多,可能我们只需要调用输出的结果或者信号,但是在一些生产中可能需要OCR算法与上位机本身深度绑定

环境配置

在NuGet上安装OpenCv与Tesseract

添加引用:

csharp 复制代码
using OpenCvSharp;   
using Tesseract;

OCR算法使用

Tesseract库已经形成了非常成熟的OCR识别算法,在测试时,我们只需要做好图片预处理,然后调用函数即可。

算法调用:

csharp 复制代码
Mat img1 = new Mat("001.jpg", ImreadModes.Color);
Mat res = new Mat();
var engine = new TesseractEngine(@"tessdata", "eng", EngineMode.Default);
// 设置识别参数
engine.SetVariable("tessedit_char_whitelist","ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789");
// 将OpenCV Mat转换为Tesseract Pix
var pix = Pix.LoadFromMemory(img1.ToBytes(".jpg"));
var page = engine.Process(pix);
string text = page.GetText();
textBox1.Text = text;

在此需注意,我们要自行去下载一套tessdata的字符识别库,下面收集了一套下载方案:

https://github.com/tesseract-ocr(GitHub自行找版本下载)

https://github.com/tesseract-ocr/tessdata_best/raw/main/eng.traineddata(英文识别库直接下载)

https://github.com/tesseract-ocr/tessdata_best/raw/main/chi_sim.traineddata(简中识别直接下载)

下载好后有如下添加方式:

1:放在项目根目录(推荐)

string tessDataPath = @"./tessdata"; // 或 "tessdata"(相对路径)

2:放在程序运行目录(部署后使用)

string exePath = AppDomain.CurrentDomain.BaseDirectory;

string tessDataPath = Path.Combine(exePath, "tessdata");

3:使用完整路径

string tessDataPath = @"D:\MyProject\OCRApp\tessdata";

函数添加地址示例:

csharp 复制代码
var engine = new TesseractEngine(@"C:\Users\Desktop\TestOpenCV\tessdata", "eng", EngineMode.Default);

实例测试

一般来说我们可以去做一些二值化或者放大的处理,我挂了个灰度处理然后直接测试一下

这是我曾经的一个工程实践中的OCR案例,

结果:

识别基本正确,在工程实践中要注意,相似字母、字符的识别,例如O与0,G与6,一般来说建议规范化需求。

后续可能会更新一些更细节的精度识别方法

相关文章

图像的二值化与其他形态学处理可以看看前文:
C#描述-计算机视觉OpenCV(7):MSER特征检测
C#描述-计算机视觉OpenCV(6):形态学
C#描述-计算机视觉OpenCV(5):直方图算法
C#描述-计算机视觉OpenCV(4):图像分割

相关推荐
潜心一志10 小时前
HALCON软件——基本架构,算子参数
学习·计算机视觉
唐青枫14 小时前
别只会看日志:C#.NET SOS 调试扩展从 Dump 到内存泄漏排查
c#·.net
差不多的周周17 小时前
《HuMoCon:人类运动理解的概念发现》论文核心部分详解
人工智能·深度学习·计算机视觉·自然语言处理
Evand J17 小时前
【MATLAB例程,图像滤波降噪12】加权中值滑动窗口滤波(WMF)图像降噪,包含滤波质量评价。附代码下载链接
开发语言·图像处理·人工智能·计算机视觉·matlab·滑动窗口·滤波
不要生病了20 小时前
MinD-Vis:用稀疏掩码预训练和双条件扩散从 fMRI 重建视觉图像
人工智能·计算机视觉·脑机接口
YOLO数据集集合20 小时前
洪水场景建筑与植被检测数据集 | 洪水检测 建筑识别 植被监测 灾情评估 目标检测9073期
人工智能·目标检测·机器学习·计算机视觉·目标跟踪·无人机视角·灾害救援
词却20 小时前
OpenCV学习:dlib 人脸检测
人工智能·opencv·学习
yswenli21 小时前
基于C#开发网站视频嗅探下载工具——BrowserVideoGrabber
c#·videodownload·webvideodownload·videograbber
Lost of 程序猿21 小时前
M2 实战:询价与采购订单聚合落地——跨聚合一致性、领域事件与 Outbox
开发语言·c#·asp.net·.net
潜心一志1 天前
HALCON软件——数据结构
学习·计算机视觉