一、问题提出

由于GPY进行了纠偏,所以在采集的时候,就已经获得了质量较高的答题卡图片

下一步就是需要从这张图片中,识别出人眼识别出来的那些信息,并且将这个过程尽可能地鲁棒化,提高识别的准确率。

二、思路探索

在从图片到数字的转变过程中,既是一个“量化”的过程,也是一个“降维”的过程,需要特定的角度非常重要。这就像很多人站在一起拍集体照,选择不同的角度能够得到这群人不同的像,高明的摄像师能够很快地找到角度,将所有的人都拍摄其中;我们图像处理程序也是同样的道理,有经验的工程师能够善于模式思考,快速找到解决方法的途径。

对于我们这里的这张答题卡图片,和之前的较为简单的答题卡想比较,有很多不同,比较两者的二值图片,就可以发现:

V S

最大的不同在于没有可以供标定的基础点。因此我们必须采用其它的方法来进行定位。

此外,答题区域为矩形密集分布,因此我想到的是直接“网格化”进行处理。

三、算法过程和主要代码

step1:灰度-二值-形态学

step2:轮廓分析

对识别出来的二值图像通过轮廓进一步地进行处理,得到下图的识别结果,就为下一步定量打下基础

step3:模板匹配

想得到识别的结果,首先就是需要对现有的图片进行分割出来。在没有定位点的前提下,如何准确切割?

根据以前的经验,基本的思路是这样:

a、根据模板识别,准确的获得可定位地址(比如我选择使用“选择题答题卡”几个字作为模板,得到下图定位结果,注意图中白点);

b、而后采用经典的“纵横”方法进行识别。(这里我对各个距离进行了测量和标注)

细节:

编写以下代码:

得到以下结果:

step4:分块面积识别

直接识别划分区域的面积,得到定量结果

全图:

细节:

step5:转化得到识别结果

编写相关识别的结果为:

四、需要注意的地方:

1、模板识别对于不同尺度采集的图片,是否具有通用性。故我需要在不同的图片、不同的采集模式下进行探索;

2、目前识别出来的结果缺乏对答题结果“重复”“遗漏”情况分析;

3、我们看见的是彩色或者灰度图像,实际上,需要识别出来的是bin区域。在实验的过程中,我们会用到“彩色或者灰度”作为背景。

至此,复杂答题卡的算法部分基本完成。感谢阅读至此,希望有所帮助。

java识别答题卡纸_识别复杂的答题卡的主要算法相关推荐

  1. jvm能识别什么字符集_识别JVM –比预期要难

    jvm能识别什么字符集 在Plumbr,我们花费了上个月的时间来为将来的重大改进奠定基础. 此类构件之一是为JVM添加唯一标识符,以便将来自同一JVM的所有会话链接在一起. 尽管一开始似乎是一项琐碎的 ...

  2. 缺失值和异常值的识别与处理_识别异常值-第一部分

    缺失值和异常值的识别与处理

  3. python识别银行卡数字_基于opencv -python--银行卡识别

    importcv2importnumpy as npimportmyutilsfrom imutils importcontoursdefcv_show(str,thing): cv2.imshow( ...

  4. 各种说明方法的答题格式_初中语文阅读答题公式 语文阅读理解万能公式大全...

    很多人想知道初中语文阅读理解有哪些答题公式,语文阅读理解的万能公式有哪些呢?下面小编为大家介绍一下! 初中语文阅读理解答题公式大全 (一)某句话在文中的作用: 1.文首:开篇点题;渲染气氛(散文),埋 ...

  5. java程序定点运行_实现跑步定点打卡

    [java]代码库package cn.run.Service; import java.sql.SQLException; import cn.run.dao.RunDao; import cn.r ...

  6. php答题测试,ThinkPHP框架开发的微信考试问卷答题系统_学生在线考试答题系统

    源码介绍 ThinkPHP框架开发的微信考试问卷答题系统,通过微信公众平台进行问卷答题,适合用来做问卷调查,也可以用来做学生考试答题系统,还有完善的问卷后台管理系统,可自定义上传问卷,支持成绩表查询. ...

  7. 各种说明方法的答题格式_说明文说明方法答题格式x

    说明文说明方法答题格式 下定义 运用下定义的说明方法,更科学更本质更准确,具体地说明**的**特点. 作诠释 运用作诠释的说明方法,对**解释说明,让读者对其有进一步认识. 分类别 运用分类别的说明方 ...

  8. java 开票金额拆分_关于开票尾差拆分凑整的算法问题

    多个费项合计计算含税价与分别计算含税的合计不一致,存在尾差. 例如: 不含税税率含税价 费项15133.21 6%5441.2 费项22647976.26 6%2806854.84 费项3475247 ...

  9. java名片识别源码_名片识别名片信息快速提取

    原标题:名片识别名片信息快速提取 以中安的名片识别技术为例剖析,它可提供移动端名片识别OCR API,同时还提供云端名片识别OCR API. Application Programming Inter ...

  10. java名片识别源码_名片识别

    原标题:名片识别 以文通科技的名片识别技术为例剖析,它可提供移动端名片识别OCR API,同时还提供云端名片识别OCR API. Application Programming Interface,简 ...

最新文章

  1. 使用eclipse创建Struts2项目
  2. OpenCV | ORB特征检测与描述
  3. 126篇殿堂级深度学习论文分类整理 从入门到应用 | 干货
  4. java 之 网络编程
  5. OpenCV注视估计Gaze Estimation的实例(附完整代码)
  6. Struts2中jsp page=xxx.action/jsp失效
  7. Hadoop之HDFS文件操作
  8. 机器学习项目中的数据预处理与数据整理之比较
  9. java与java ee_Java EE拦截器
  10. Asp.net web Api源码分析-HttpParameterBinding
  11. 关于K8s技术架构的几个问题
  12. 如何从控制台测试AngularJS服务?
  13. 苹果电脑如何查看本机IP地址和DNS?
  14. 存储过程和函数的区别
  15. 苹果手机的计算机怎么设置快捷键大全,教程方法;苹果电脑快捷键大全最常用的都在这里了电脑技巧-琪琪词资源网...
  16. 掠食细菌—蛭弧菌B. bacteriovorus,可以对抗革兰氏阴性感染?
  17. mysql二级考试范围_计算机二级MySQL考试内容大纲
  18. 安卓:点击空白处隐藏软键盘
  19. STM32F103+VL53L0测距(一)
  20. summation()

热门文章

  1. 制作Mobi电子书目录
  2. CAD如何一键解决批量打印
  3. 压缩qcow2虚拟机镜像文件
  4. SPSS学习笔记(一)判断是否服从正态分布
  5. C# 图片验证码简单例子
  6. nginx跨域配置及压缩配置
  7. Blumind 思维图软件
  8. mac excel 函数
  9. JAVA面向对象中继承子父类构造函数-子类的实例化过程-图解
  10. 一键打开常用软件(bat/vbs)