Labview OCR数字识别

article/2025/7/19 5:47:48

::: keywords
labview,OCR,灰度,对比度,数字识别
:::
下载文件

前言

OCR (Optical Character
Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程。

本文基于labview设计了一个学号识别系统,可以识别学生卡上学号并保存在文件中,同时也可以识别身份证号、名片电话等。

该系统包含图像获取、图像处理、数据输出,是一个综合性的设计,作为学习labview的阶段性练习。

运行环境

本系统运行在labview2020或2018环境,需要安装labview的视觉组件。

  1. LabVIEW软件

  2. Vision Development
    Module(视觉开发模块)

  3. NI Vision Acquisition
    Software(视觉采集软件)

安装过程

设计原理

图像格式

  1. 彩色图像:由RGB三原色数值排列表示一个像素,有RGB888(24位)和RGB565(16位)等格式。其中,24位全彩色图像中的每个像素占据3个byte的空间,分别表示RGB3个通道,总共可以显示 25 6 3 256^3 2563种颜色

  2. 灰度图:由灰度信息表示一个像素(8位,0-255:0表示最暗色,255表示最亮色),每个像素存放在一个byte空间

  3. 二值图像:由二值信息表示一个像素,每个下昂苏存放在一个bit空间

OCR数字识别

OCR(光学字符识别)是指机器自动从图像中识别文本字符的过程,是目标分类和识别的一种应用,包括训练与分类过程,可用于对被测件的识别和分类。

OCR训练过程主要从图像中提取用于字符识别的特征向量,并对各字符图像赋予准确的字符值。具有相同字符值的字符样本图像构成一个字符类,该类可以用其中一个最能代表该类字符的样本图像来代表,称为参考字符。字符训练完成后,就可得到一个用于对字符进行识别的字符集。

OCR对图像中的文本进行读取时,会先将图像中的各个字符图像分割开来,并将字符的特征向量与字符集中保存的特征向量进行对比,选取满足条件的最佳匹配向量所对应的字符值作为读取识别结果。若有必要,也可以通过字符验证过程对OCR的识别质量进行验证。

常见的OCR识别应用包括:药品包装标签识别、IC芯片编码读取、冲压零件上的字符识别、汽车零件编码读取以及车牌识别等。

利用Labview的Vision模块的OCR组件可以实现从训练到识别的过程。

图像处理

机器视觉系统开发过程中常见的特征包括像素灰度、边缘、轮廓和形状、纹理、角点、色彩以及各种与图像颗粒相关的属性等。

本文进行OCR识别的对象为学生卡或其他证件,一般有明显的数字特征,字体之间有明确间隔,字体背景为浅颜色,故获取彩色图像后,需要对其灰度化、增强亮度和对比度处理。这些函数都可以在labview的vision组件中找到

文件存储

利用labview的文件I/O组件可以实现将字符串换行写入txt文件中,实现OCR识别结果的存储。

程序设计

程序流程

程序图

程序框图

最终效果

程序步骤

相机获取

开启摄像头

  1. 利用IMAQdx Open Camera
    VI
    开启摄像头,查询相机功能,加载相机配置文件,输入摄像头名称(cam0为笔记本自带摄像头),输出相机引用。

  2. 利用IMAQ Create VI为图像创建临时内存位置。

  3. 摄像头引用节点输入IMAQdx Configure Grab
    VI
    ,配置并从缓冲区抓取图像。

  4. 创建while循环,将图像和引用输入IMAQdx Grab2
    VI
    ,输出最新的帧获取到Image Out,并通过Image显示。

图像处理

图像处理·

  1. 将摄像头实时获取的彩色图像输入IMAQ ExtractSingleColorPlane
    VI
    ,输出单通道灰度图。

  2. 将单通道灰度图输入IMAQ BCGLookup VI
    ,创建亮度、对比度和gamma矫正输入,调节典型值(80,80,1),获得图像增强后的输出。

  3. 当环节内有error输出或按下暂停键,停止图像更新,并将最新一帧增强图像输出。

OCR训练

OCR的字符集可由Nl OCR训练器应用程序离线训练得到。

  1. 打开软件Vision Assistant 2021 (32-bit)

  2. 利用手机、相机拍摄多张彩色、灰色、增强图像,用OCR训练器打开

    OCR训练

  3. 创建训练集,对图片手动添加数据集并标定

    手动添加训练

    不同的数据集

  4. 保存为文件studentnumber.abc,验证模型效果

    彩色图识别预览

OCR识别

OCR识别程序

  1. 利用IMAQ OCR Create Session VI ,创建OCR会话,返回句柄。

  2. 利用IMAQ OCR Read Character Set File
    VI
    读取字符集studentnumber.abc,添加到读取过程使用的训练字符集。

  3. Labview的Image可以创建ROI属性节点,框选区域,输出矩形对角坐标。创建鼠标释放事件,当框选结束时,执行对框选区域的OCR识别。

  4. 利用IMAQ Clear Overlay VI,清除图像覆盖,保证识别帧为最新一帧。

  5. 利用IMAQ OCR Read Text 3
    VI
    ,利用训练字符集读取ROI框选图像中的文本,将每个对象与字符集的每个字符比较,选择与对象最匹配的字符,输出为字符串。

文件保存

文件存储

  1. 读取当前路径和文件名,利用**创建路径(函数)**生成路径。

  2. 利用打开/创建/替换文件 (函数) ,打开路径对应的Save.txt文件

  3. 利用设置文件位置 (函数) ,设置写入位置为文件末尾。

  4. 利用连接字符串 (函数) ,在输出的字符串前添加回车符。

  5. 利用写入文本文件 (函数) ,将识别结果写入txt文件。

识别效果

至此,OCR数字识别程序已完成

实验结果

经测试,对学生卡等白背景数字识别准确率较高,而对银行卡等带颜色背景数字识别有误差。

识别统计

对于长串数字,若光照和颜色均匀,有较为准确的识别结果。

识别效果

数据集的完整性对识别结果有明显影响,采集数据时未能找到学号带有数字6的学生卡,故数据集中数字6只有一个,在对银行卡号中的数字6,有高概率误认为数字8.

下载

关注公众号小电动车,回复数字识别获取Labview工程文件

请添加图片描述


http://chatgpt.dhexx.cn/article/vEo7FAae.shtml

相关文章

ABBYY15免费照片识别文字识别软件

照片识别文字的软件有哪些?在日常的工作的时候,小伙伴们是不是经常会借助拍摄照片记录一些比较重要的事情或者是一些比较重要的笔记,等回头空闲出来的时候在去整理,那么这时候,如果我们运用好图片识别文字这项技术&…

ABBYY FineReader15最新专业的PDF OCR图片文字识别软件

ABBYY FineReader PDF15是专业的OCR图片文字识别软件,可以快速、准确、方便地将扫描纸质文件、PDF格式及数字或移动电话图像转换成可编辑格式——Microsoft Word、Excel、PowerPoint、可检索的PDF、HTML、DjVu等。99.8%的识别准确率即刻识别文本,复制和粘…

怎么识别数字?看看这些识别软件能不能帮上你

随着数字时代的到来,数字在我们的生活中出现的频率也在不断的提高,而数字识别在我们的生活中也有了越来越重要的作用,给大家举个例子,当我们在商店购物时,往往需要使用银行卡进行支付,在这个过程中&#xf…

完全免费的OCR文字识别软件

今天我要分享给大家的是两款完全免费的OCR文字识别软件,而且这两款软件都是本地版无需联网就能使用,而且没有使用次数的限制。 软件准备好了: 链接: 百度网盘 请输入提取码 提取码: 6666 01软件信息 软件名称:OCR文字识别软件 …

基于BP神经网络手写体数字识别的软件设计

目 录 1 绪论 1 1.1 字符识别概述 1 1.2 手写数字识别的意义和应用前景 2 1.3 字符识别的研究与发展 3 1.4 手写数字识别的难点 3 1.5 国内外研究现状 4 1.6 手写体数字识别系统概述 5 1.7 本文内容安排 6 2 手写体数字识别中预处理技术 8 2.1 平滑去噪 8 2.2 二值化 10 2.3 归…

bp神经网络_BP 神经网络驱动的手写体数字识别软件 EasyOCR

EasyOCR 项目介绍 本软件是一个手写体数字识别软件,采用BP神经网络,基于colt数学库,有完整源码,可以保存训练结果,基于开源例程neuralnetwork-sample,原作可以在GitHub中找到。主要改进了训练结果保存&…

opencv 数字识别详细教程

最近要做数字识别这块,但是自己又完全不懂这个,网上搜资料搜了好多,但是都没找到完整代码。只有自己慢慢搞,下面写下自己的过程以及代码有不好的地方希望大神可以指出,大家相互交流下。有需要完整代码的可以自行下载&a…

FPGA实现mnist手写数字识别(软件部分)

文章目录 FPGA实现mnist手写数字识别① 环境配置② 数据集及代码下载③ 代码操作(1)训练模型(2)权重输出(3)关于灰度转换 FPGA实现mnist手写数字识别 ① 环境配置 使用的环境:tf1.12&#xff…

pyqt5手写板+pytorch卷积神经网络,实现手写数字识别软件

卷积神经网络的结构 #定义网络结构 #不是le-net5的结构 class Net(nn.Module):def __init__(self):super(Net, self).__init__()# Sequential表示在搭建网络模型中要执行的一系列的步骤# Dropout中,p0.5表示50%的神经元不工作# layer3:输出层 一般输出层中不需要加Dropout# Co…

使用Dl4j训练的一个手写数字识别软件

DL4J使用之手写数字识别 最近一直在学习深度学习,由于我是Java程序员出身,就选择了一个面向Java的深度学习库—DL4J。为了更加熟练的掌握这个库的使用,我使用该库,以MNIST(http://yann.lecun.com/exdb/mnist/)手写数字数据集作为…

识别数字的软件有哪些?这几款识别数字工具安利给你

嘿,朋友们,你们有没有遇到过需要处理大量数字的情况,要是一个一个手动输入感觉十分麻烦,还会耗费大量时间和精力?别着急,现在数字识别的软件已经非常发达了,只需要一款好用的数字识别软件&#…

这款数字识别软件你知道吗

识别数字技术是指通过计算机自动识别数字的能力,通常采用数字图像处理和模式识别等技术进行实现。你别看这个技术好像很高大上,实际上现在已经有很多软件可以做到识别数字了,你知道识别数字的软件有哪些吗?今天我就为大家科普这项…

基于TensorFlow深度学习框架,运用python搭建LeNet-5卷积神经网络模型和mnist手写数字识别数据集,设计一个手写数字识别软件。

本软件是基于TensorFlow深度学习框架,运用LeNet-5卷积神经网络模型和mnist手写数字识别数据集所设计的手写数字识别软件。 具体实现如下: 1.读入数据:运用TensorFlow深度学习框架,下载并读入mnist手写数字识别数据集。 2.构建模型…

OCR手写数字识别什么软件好用?介绍一种

OCR是指用电子设备检查文本上的资料,然后对图像文件进行分析处理,从而获取文字及版面信息的过程。那OCR手写数字识别有好用的软件吗?当我们需要整理大量手写资料需要整理时,下面这两款软件就派上用场了。 软件一、我们可以使用识别…

识别数字的软件有哪些?自动识别数字的方法并不难

每个月月初时,作为销售助理的同事经常要整理一大堆数据,密密麻麻的数字看得他头晕眼花,特别是有些图片里的数字,一不小心就容易出错,酿成严重的数据错误。像平时我也会处理到一些数据图片,为了准确及时的整…

Unity 渲染YUV数据 ---- 以Unity渲染Android Camera数据为例子

1 背景 一般Unity都是RGB直接渲染的,但是总有特殊情况下,需要渲染YUV数据。比如,Unity读取Android的Camera YUV数据,并渲染。本文就基于这种情况,来展开讨论。 Unity读取Android的byte数组,本身就耗时&am…

图形学之Unity渲染管线流程分析

文章来源: 学习通http://www.bdgxy.com/ 普学网http://www.boxinghulanban.cn/ 智学网http://www.jaxp.net/ 表格制作excel教程http://www.tpyjn.cn/ 学习通http://www.tsgmyy.cn/ 下图是《Unity Shader 入门精要》一书中的渲染流程图; ApplicationS…

Unity渲染(二):Shader着色器基础入门之渲染Image图片

Unity渲染(二):图片渲染 通过这里,你会学习到怎么将一张图片渲染到UI的Image组件或者SpriteRenderer上,以及透明物体的渲染。 上一章:Unity渲染(一):着色器基础入门之纯色Shader 开发环境:Unity5.0或者更高 透明与不透明的最终效果 概述 1…

unity 渲染性能分析工具

目标 既然要优化,肯定要有个目标: pc上一般要求:一秒渲染60帧 移动端:一秒渲染30帧 这应该是最低的要求,如果游戏运行时,游戏帧率有变化,人眼能够明显的感觉到帧率下降。 优化的首要规则是找到…

unity 渲染环境设置

环境光分为两种,一种是环境光漫反射SH(球谐光照),另一种是环境光的镜面反射IBL(基于图像的渲染)。 光照的配置位置可以在 窗口 -> 渲染 -> 光照 打开。 环境照明对应的就是环境漫反射,环…