利用AForge+Tesseract制作视频OCR程序

先上界面:

实现功能及流程:

1:从摄像头获取图像,框选要识别的区域

2:对选区进行图像处理,方便识别

3:识别文字

4:获取芯片上的内容(使用客户提供的芯片解码程序)

5:比较两个内容是否一致

6:写入数据库(带图片)

7:对历史数据进行查阅、导出Word(导出时带图片)

此版本将4~7功能去除了

获取图像:

使用AForge组件(参考项目:http://download.csdn.net/detail/jrlxsy/6927833),为了绘选区,将图像通过PictureBox显示出来,事件:videoSource.NewFrame += VideoSource_NewFrame;

        /// <summary>
        /// 视频产生新祯时的事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="eventArgs"></param>
        private void VideoSource_NewFrame(object sender, NewFrameEventArgs eventArgs)
        {
            try
            {
                srcBitmap = (Bitmap)eventArgs.Frame.Clone();
                pictureBoxIn.Image = drawRectangle(new Bitmap(srcBitmap));
                GC.Collect();
            }
            catch (Exception) { }
        }

图片框事件:

        #region 视频预览框事件
        private void pictureBoxIn_MouseDown(object sender, MouseEventArgs e)
        {
            sx = e.X;//记录当前鼠标坐标信息
            sy = e.Y;
            isDrawRect = true;//鼠标点下是绘制矩形
            w = h = 0;
            pictureBoxIn.Refresh();
        }

        private void pictureBoxIn_MouseMove(object sender, MouseEventArgs e)
        {
            if (!isDrawRect)
            {//如果不允许绘制 直接返回
                return;
            }
            w = e.X - sx;
            h = e.Y - sy;
            //pictureBoxIn.Refresh();//刷新窗体(主要是在move事件里面在不停绘制绘制一次刷新一次(上次绘制的就被清除了))
            pictureBoxIn.Image = drawRectangle(pictureBoxIn.Image);
        }

        private void pictureBoxIn_MouseUp(object sender, MouseEventArgs e)
        {
            isDrawRect = false;// 鼠标抬起禁止绘制矩形 并且把矩形区域的图像绘制出来
        }
        #endregion

然后就是图像的预处理和识别了,预处理用的是ZPhotoEngine库,地址:http://download.csdn.net/detail/trent1985/9591030,主要就是进行前景与背景分离,得到黑白的图像(右下图片框的图片)。

使用了中值滤波、高斯模糊、高反差保留、阈值几个方法。

识别就使用Tesseract3.0.2.0,不过这家伙的语言库有点大,一个eng的居然快50M,2.0.4.0的才1.6M。

另外,ZPhotoEngine库需要设置允许不安全代码,SQLite需要设置2.0环境,App.config设置如下(重点是startup段的配置):

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
    <supportedRuntime version="v2.0.50727"/>
  </startup>
  <system.diagnostics>
    <sources>
      <source name="Tesseract" switchValue="Verbose">
        <listeners>
          <clear />
          <add name="console" />
          <!-- Uncomment to log to file
                <add name="file" />
                -->
        </listeners>
      </source>
    </sources>
    <sharedListeners>
      <add name="console" type="System.Diagnostics.ConsoleTraceListener" />
    </sharedListeners>
  </system.diagnostics>
</configuration>
时间: 2024-10-07 05:30:06

利用AForge+Tesseract制作视频OCR程序的相关文章

利用JS函数制作时钟运行程序

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>时钟</title> <script type="text/javascript"> function toDouble(num)//不满两位,空位补零 { if(num<10) { return '0'+num;//一

利用Costura.Fody制作绿色单文件程序(C#程序(含多个Dll)合并成一个Exe)

原文:利用Costura.Fody制作绿色单文件程序(C#程序(含多个Dll)合并成一个Exe) 开发程序的时候经常会引用一些第三方的DLL,然后编译生成的exe文件就不能脱离这些DLL独立运行了.这样交给用户很不方便,希望的效果是直接交付一个exe文件. 这时候就需要借助一款名为Fody.Costura的插件.Fody.Costura是一个Fody框架下的插件,可通过Nuget安装到VS工程中.安装之后,就可以将项目所依赖的DLL(甚至PDB)文件全部打包到EXE文件里. 使用 Costura

陈松松:制作视频优先选择这5种类型,总有一个适合你

这是我写的第88篇原创视频营销文章 陈松松,6年视频营销实战经验 万事开头难! 就看谁先能挺住! 很多朋友发现制作视频也有很多类型,不知道选择哪种最适合自己,今天我就跟大家详细分享下,当你学习之后,你根据自己的情况去选择和深入学习,也相当于给了你一个参考方向: 第一种:套视频模板 难度系数:三星 只需要修改文字.替换掉自己的图片,一般这种模板类的视频在10秒-2分钟左右,只要你的视频模板多,都可以制作出非常多的视频. 虽然套视频模板的视频非常简单,任何没有基础的人都可以操作,你用哪种视频软件的模

PHP制作简易聊天程序

近几天来,突然在查阅PHP中文手册时,看到了用PHP制作聊天室的示例,于是一时心血来潮也用PHP写了一个简易的WEB聊天室应用,在写聊天室的过程中,我遇到的问题其实不算很多,因为用php制作聊天室的原理是非常简单的,也许这与我自身思考问题的方式有关,我往往喜欢把任何看似复杂的东西简单化,我相信表面复杂的事物,其实都蕴含着简易原理,我的这种思维模式在这次WEB聊天应用的制作中起到了作用,下面我就将PHP制作WEB聊天室的原理给大家做一个介绍: 首先我们要建立一个WEB框架,这个框架也就是利用HTM

c# 利用AForge和百度AI开发实时人脸识别

baiduAIFaceIdentify项目是C#语言,集成百度AI的SDK利用AForge开发的实时人脸识别的小demo,里边包含了人脸检测识别,人脸注册,人脸登录等功能 人脸实时检测识别功能 思路是利用AForge打开摄像头,通过摄像头获取到的图像显示在winform窗体中AForge的控件中,利用AForge控件中的NewFrame事件获取要显示的每一帧的图像,获取图像传输到百度AI平台进行人脸检测,并且将检测结果反馈到界面显示的图像中.在这个过程中有两个问题,获取图像上传到百度AI平台进行

iSkysoft iMedia Converter Deluxe Mac如何制作视频?视频格式转换工具制作动图的方法

使用iSkysoft iMedia Converter Deluxe Mac如何制作视频?使用视频格式转换工具,你可以轻松进行动图或视频的制作,也可以把你喜欢的视频的某一段提取出来,制作成你自己风格的视频,功能强大,使用简单,下面Mac down 小编就为大家介绍一下视频格式转换工具制作动图的方法,希望能够对你有所帮助. https://www.macdown.com 首先下载iSkysoft iMedia Converter Deluxe Mac视频格式转换工具. 来本站Mac down.co

[应用]来点实际,利用CB刷简历更新时间程序(python)

实际上就是一个python的curl应用.应tom的要求,现在公布给大家.希望能对大家有用. http://onefishum.blog.163.com/bl ... 052013324114213898/ 目前高端的工作是越来越难找了.本人做了51.zhaopin.猎聘网的刷简历程序,都和此类似,但目前这几个号称最大的招聘网站,根据我一段时间的跟踪分析,发现从去年开始,人员需求基本为0,大部招聘都是假的.所以开发才想做一个刷新简历更新时间程序,以便加大自身机会(工作不换工资不涨,为了活呀,只能

制作PHP安装程序的原理和步骤56

1.制作PHP安装程序的原理和步骤检查目录或文件的权限----修改或填加配置文件---检查配置文件正 确性---导入数据库----锁定或删除安装文件 原理: 其实PHP程序的安装原理无非就是将数据库结构和 内容导入到 相应的数据库中,从这个过程中重新配置 连接数据库的参数和文件,为 了保证不被别人恶意使用安装文件,当安装完成后需要修改安装文件 .2制作安装用到的PHP函数is_writable(“data/config.php”);is_writable() 检查文件是否可写,用来判断文件权限,

利用C#自带组件强壮程序日志

前言 在项目正式上线后,如果出现错误.异常.崩溃等情况, 我们往往第一想到的事就是查看日志. 所以日志对于一个系统的维护是非常重要的. 声明 本文中的示例代码旨在这个框架是怎么工作的,具体实现可以自由发挥. 贯穿所有的日志系统 日志系统,往往是贯穿一个程序的所有代码的; 试想一下,如果你的日志完全是由第三方组件提供的; 那么就意味着,你的所有项目都必须引用这个dll; 也许你会说自己可以2次封装,那么依然需要所有项目都引用你的这个封装后的log项目, 另一方面 一些log组件需要实例化后才可以使