Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >分享一个基于 SpringMvc + OpenCV 的答题卡识别系统

分享一个基于 SpringMvc + OpenCV 的答题卡识别系统

作者头像
程序员的时光001
发布于 2021-06-09 02:52:50
发布于 2021-06-09 02:52:50
8220
举报
文章被收录于专栏:程序员的时光程序员的时光

简介

OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,它提供了一系列图像处理和计算机视觉方面很多通用算法。是研究图像处理技术的一个很不错的工具。最初开始接触是2016年因为公司项目需要,但是当时网上可供参考的 demo 实在太少了,而且基本上都是基于C、C++实现的。也就是从 2017 年开始,关于 java+opencv 的资料才渐渐多起来。处于这种情况,就想搭建一个有助于我们学习和了解 opencv 的一个平台。因此就有了这个系统。从安装开始,和大家一起学习记录 OpenCV 的相关知识,直至最终一个简单但完整 DEMO 的实现(答题卡识别)。

软件架构

SpringMVC+AdminLTE 2+maven。考虑到之前 demo 测试,要么都是生成图片查看效果,要么用 swing 绘制,遇到参数变化的时候,不便于调试,于是就做成了大家熟悉的 web 模式。后台是基于 SpringMVC,也没有数据库交互,就是个页面操作效果实时查看的功能,现在很简单。前端使用的是AdminLTE 2,一个基于 bootstrap 的轻量级后台模板。

主要内容

  • 图像二值化
  • 图像自适用二值化
  • 高斯模糊
  • 图片缩放
  • 腐蚀膨胀
  • 进阶形态学变换
  • 边缘检测
  • 检测直线
  • 检测圆
  • 检测颜色
  • 轮廓识别
  • 模板查找
  • 绘制灰度直方图
  • 答题卡识别demo

系统效果

另外正在陆续实现一个拍照识别答题卡的小程序,可以微信小程序搜索扫扫阅卷。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-05-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员的时光 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
答题卡图像识别项目
图片是通过手机、相机、扫描仪等设备拍照而来,其中手机、相机拍出的照片会出现像素低、图像不正、聚焦不清楚等问题;
机器学习AI算法工程
2019/10/28
4.3K0
答题卡图像识别项目
OpenCV-简易答题卡识别
参考自:https://www.pyimagesearch.com/2016/10/03/bubble-sheet-multiple-choice-scanner-and-test-grader-using-omr-python-and-opencv/
xxpcb
2020/08/04
1.4K0
【愚公系列】《AIGC辅助软件开发》028-AI辅助解决各种疑难杂症:提升答题卡选项识别率
在教育领域,答题卡的使用越来越普遍,但随之而来的却是选项识别率不高的问题。这不仅影响了评分的准确性,也对学生的考试体验产生了负面影响。随着人工智能技术的不断进步,我们有机会利用AI的强大能力来解决这一难题,提升答题卡选项的识别率。
愚公搬代码
2024/12/30
1240
使用python3+opencv3实现的识别答题卡的例子(01)
由于工作需要,最近在研究关于如何通过程序识别答题卡的客观题的答案,之前虽然接触过python,但对于计算机视觉这一块却完全是一个陌生的领域,经过各种调研,发现网上大多数的例子都是采用的OpenCV这个开源库来做的,OpenCV是计算机视觉领域的处理的一个非常优秀的开源库,原生由C++编写,也提供了各个主流编程语言的接口支持,这里选择python完全是因为python在计算机科学领域有着压倒性的优势和生态系统,所以使用它毫无疑问,最快上手的方式莫过于直接阅读网上已有的例子或者轮子了,通过阅读源码以问题驱动的方
我是攻城师
2018/05/15
2.2K0
使用python3+opencv3实现的识别答题卡的例子(02)
例子02是ayoungprogrammer博客上参考作者原版C++代码和思路,然后改造成python版本的,先在本地运行成功之后,然后加上自己的理解,给大多数核心代码加上了详细的中文注释,并在每一个关键阶段都会弹出具体的窗体展示识别流程,这样便于大家更能详细的看到核心部分的细节,感兴趣的同学,可以自己在再尝试加一些更细部分的debug弹窗。
我是攻城师
2018/05/22
1.2K2
使用python3+opencv3实现的识别答题卡的例子(02)
例子02是ayoungprogrammer博客上参考作者原版C++代码和思路,然后改造成python版本的,先在本地运行成功之后,然后加上自己的理解,给大多数核心代码加上了详细的中文注释,并在每一个关键阶段都会弹出具体的窗体展示识别流程,这样便于大家更能详细的看到核心部分的细节,感兴趣的同学,可以自己在再尝试加一些更细部分的debug弹窗。
我是攻城师
2018/07/23
9110
使用python3+opencv3实现的识别答题卡的例子(02)
OpenCV与图像处理(十)
图像处理是利用计算机对图像进行去噪、增强、复原、重建、编码、压缩、几何变换、分割,提取特征等的理论、方法和技术。图像处理中,输入的是低质量的图像,输出的是改善质量后的图像。
Must
2020/07/27
1.4K0
C#使用OpenCV进行答题卡识别
type表示了矩阵中元素的类型以及矩阵的通道个数,它是一系列的预定义的常量,其命名规则为CV_(位数)+(数据类型)+(通道数),由type()返回,但是返回值是int型,不是OpenCV预定义的宏(CV_8UC1, CV_64FC1…),也就是说你用type函数得到的只是一个int型的数值,比如CV_8UC1返回的值是0,而不是CV_8UC1。
码客说
2022/09/09
2.9K1
C#使用OpenCV进行答题卡识别
历时七个月整理出来的《OpenCV4系统化学习路线图》
OpenCV4.0发布以来,其依靠良好的接口代码、系统级别的优化、更加通用易学的函数调用,集成OpenVINO与tensorflow、caffe等模型加速推断、实现了从传统的图像处理到基于深度学习的视觉处理路线图的完整拓展。OpenCV4 毫无疑问是一个OpenCV发展历史的一个重要里程碑之作。官方的宣传口号是 OpenCV4 is more than OpenCV 充分说明OpenCV4 是整合深度学习的新一代计算机视觉开发框架!
AI算法与图像处理
2019/08/20
2.6K0
历时七个月整理出来的《OpenCV4系统化学习路线图》
OpenCV实战:从图像处理到深度学习的全面指南
OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库。它由一系列的C函数和少量C++类构成,同时提供Python、Java和MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
TechLead
2023/10/21
8910
OpenCV实战:从图像处理到深度学习的全面指南
拿来即用!Get计算机视觉核心知识,看这本书就够了!
👆点击“博文视点Broadview”,获取更多书讯 计算机视觉是目前最热门的研究领域之一! 无论是二维码识别、刷脸支付,还是智能安防、无人驾驶等,都需要用到计算机视觉技术。 而说到计算机视觉,就不得不提到OpenCV。 OpenCV作为一个历史悠久、功能丰富、社区活跃的开源视觉开发库,一方面,它提供了计算机视觉以及图像处理方面最常用最基础的功能支持,是开发的必备工具;另一方面,它在新版本中紧跟潮流,加入了对新的算法、硬件的支持。 OpenCV 基于C++编写,但提供了 Python、Ruby、MATLAB
博文视点Broadview
2022/08/26
6200
拿来即用!Get计算机视觉核心知识,看这本书就够了!
石头、剪子、布!这些手势都是怎么被计算机识别的?
👆点击“博文视点Broadview”,获取更多书讯 随着人工智能的不断发展,计算机视觉技术被应用到越来越多的场景之中,甚至连我们儿时最爱的“石头、剪子、布”游戏,也被它“搞定了”。那么,计算机是如何进行数字手势识别的呢? 在进行数字手势识别时,将手势图中“凹陷区域”(该区域被称为凸缺陷)的个数作为识别的重要依据,如图 1所示: 表示数值0、数值1的手势具有0个凹陷区域(不存在凹陷区域)。 表示数值2的手势具有1个凹陷区域。 表示数值3的手势具有2个凹陷区域。 表示数值4的手势具有3个凹陷区域。 表示数值5
博文视点Broadview
2022/08/26
1.5K0
石头、剪子、布!这些手势都是怎么被计算机识别的?
实战 | 哪个瞬间让你突然觉得CV技术真有用?
本文授权自知乎作者南慕伦,CMU计算机视觉方向,描述了一个自动化阅卷机器,非常有借鉴意义。文末点击阅读原文查看。
AI算法与图像处理
2019/09/17
7960
实战 | 哪个瞬间让你突然觉得CV技术真有用?
ython打造智能车牌识别系统,实现快速准确的车辆识别与追踪技术
车牌识别技术 是智能交通系统中的重要组成部分,它可以对车辆的行驶轨迹进行跟踪和记录,为交通管理提供重要的数据支持。
Python兴趣圈
2023/11/10
3840
ython打造智能车牌识别系统,实现快速准确的车辆识别与追踪技术
Python 教你用OpenCV实现给照片换底色
OpenCV的全称是:Open Source Computer Vision Library。OpenCV是一个基于 BSD 许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。相比于 PIL 库来说 OpenCV 更加强大, 可以做更多更复杂的应用,比如人脸识别等。
叶庭云
2022/05/06
2.1K0
Python 教你用OpenCV实现给照片换底色
【01】opencv项目实践第一步opencv是什么-opencv项目实践-opencv完整入门以及项目实践介绍-opencv以土壤和水滴分离的项目实践-人工智
图像增强:首先对原始高清图像进行增强处理。常见的处理方法包括直方图均衡化、对比度增强等,以提高图像的可视化效果,突出水膜与背景之间的差异。
卓伊凡
2025/01/29
1480
一篇文章就梳理清楚了 Python OpenCV 的知识体系
本篇文章目的将为你详细罗列 Python OpenCV 的学习路线与重要知识点。核心分成 24 个小节点,全部掌握,OpenCV 入门阶段就顺利通过了。
码农向前冲
2021/12/27
1.6K0
一篇文章就梳理清楚了 Python OpenCV 的知识体系
基于OpenCV的条形码检测
在日常生活中,经常会看到条形码的应用,比如超市买东西的生活,图书馆借书的时候。。。
小白学视觉
2021/01/21
1.2K0
Java使用OpenCV进行答题卡识别
https://github.com/opencv/opencv/releases
码客说
2022/09/09
2.9K1
Java使用OpenCV进行答题卡识别
【OpenCV】Chapter8.形态学图像处理
形态学的基本思想是利用结构元素测量或提取输入图像中的形状或特征,以便进行图像分析和目标识别。
zstar
2022/09/27
1.2K0
【OpenCV】Chapter8.形态学图像处理
推荐阅读
相关推荐
答题卡图像识别项目
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档