网上阅卷系统自动识别功能代码
前几天一个朋友找到我让我做一个网上阅卷系统,就是实现这么几个功能:高速扫描仪扫描试卷后得到一张一张的图片,软件的功能就是处理图片,计算成绩。再详细点就是自动识别考生涂的学号,自动识别考生的选择题答案并记录,后面的大题要分块,把每一个题从试卷中分离出来,转发给老师进行阅卷。最后就是实现成绩的汇总与分析。
软件运行截图(可以正确识别学号):
程序源码:
/*
作者:ma6174
邮箱:ma6174@163.com
时间:2012年2月23日
其他:包含的头文件<graphics.h>来则easyx的图形库
*/
#include<stdio.h>
#include<graphics.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#include<windows.h>
//定义方格的大小和方格的间距,根据实际情况做相应的修改
#define BOX_X 42
#define BOX_Y 13
#define BLANK_X 18
#define BLANK_Y 25
//颜色分量类
class rgb
{
public:
BYTE red;
BYTE green;
BYTE blue;
};
//判断一个点是不是黑色
bool judge_black(rgb color)
{
if(color.blue+color.green+color.red<30)//可能会有点误差,根据实际情况调整
return true;//黑色,有标记
return false;
}
//判断一个方格有没有被填涂
bool judge_box(int x,int y,HDC hdc)
{
int i,j,total=0,count=0;
COLORREF color;
for(i=x+2;i<x+BOX_X-2;i++)//循环判断所有点
{
for(j=y+1;j<y+BOX_Y-1;j++)
{
total++;
color=GetPixel(hdc,i,j);
rgb temp;
temp.red=GetRValue(color);
temp.green=GetGValue(color);
temp.blue=GetBValue(color);
if(judge_black(temp)==true)
count++;
}
}
if(double(count)/total>0.5)//黑色的比例大于50%则认为该方格被填涂
return true;
return false;
}
//判断所有的,入口参数分别是起始横坐标,起始纵坐标,行数,列数,窗口句柄
void judge_all(int start_x,int start_y,int hangshu,int lieshu,HDC hdc)
{
int i,j;
for(i=0;i<hangshu;i++)
{
for(j=0;j<lieshu;j++)
{
// Sleep(50);
// circle(start_x+i*(BOX_X+BLANK_X),start_y+j*(BOX_Y+BLANK_Y),10);
if(judge_box(start_x+i*(BOX_X+BLANK_X),start_y+j*(BOX_Y+BLANK_Y),hdc)==true)
{
printf("%d",j);
// outtextxy(start_x+i*(BOX_X+BLANK_X),start_y+j*(BOX_Y+BLANK_Y),"A");
}
}
// printf("\n");
}
}
int main()
{
int start_x,start_y,total=0,count=0;
initgraph(1440,900);
cleardevice();
IMAGE img;
loadimage(NULL,"d:\\1.jpg");
HDC hdc = GetImageHDC();
MOUSEMSG m;
while(1)//通过鼠标点击得到起始位置
{
m=GetMouseMsg();
if(m.uMsg==WM_LBUTTONDOWN)
{
start_x=m.x;
start_y=m.y;
break;
}
}
judge_all(start_x,start_y,18,10,hdc);
printf("\n");
getch();
}
目前只是实现了基本的识别功能。当然如果仅仅是识别只有学号和选择的答题卡这些功能就够了。真正使用的话还要进行完善,比如增加选择题的识别,控制功能等。当然软件功能也可以进一步扩展,比如自动识别开始位置等。
博主ma6174对本博客文章(除转载的)享有版权,未经许可不得用于商业用途。转载请注明出处http://www.cnblogs.com/ma6174/
对文章有啥看法或建议,可以评论或发电子邮件到ma6174@163.com
网上阅卷系统自动识别功能代码相关推荐
- 鼎诚网上阅卷系统.html,鑫众博网上阅卷系统各类答题卡轻松识别
网上阅卷系统工作流程 一.命题及答题卡设计 命题老师采用题.卡分离方式分别制作试题和答题卡,采用系统自带的标准Word答题卡模版,答题卡设计简单.方便. 本系统兼容任意第三方答题卡 二.答题卡印刷 支 ...
- 乐华网上阅卷系统服务器地址,乐华阅卷F版本
乐华阅卷F版本是一款专门为在校老师开发的移动阅卷应用,软件拥有先进的识别技术,能够快速的扫描识别试卷,老师可以随时随地的开启阅卷,查看阅卷进度,帮助老师彻底解放双手,减轻阅卷压力,需要的可以来西西下载 ...
- 濮阳二级计算机考试成绩查询系统,濮阳网上阅卷系统考生查询页面
濮阳网上阅卷成绩查询:提供濮阳当地多个学校的成绩查询服务,让学生可以快速了解自己的考试成绩.另外,它还具有智能阅卷功能,借助网络力量,帮助老师提高阅卷速度! 濮阳网上阅卷成绩查询主要特性 1.系统配置 ...
- 网上阅卷软件测试初学者,如何对网上阅卷系统的进行比较测试
由于不同厂家的网上阅卷系统存在着开发技术.开发依据的不同,因而不同产品的功能.性能及使用方法也必然存在差异.为更好地选择产品,作为用户方,对不同产品进行对比性测试是一个可行,而且也是最可靠的方法. 如 ...
- 网上评卷系统无法连接服务器,网上阅卷系统上传到系统服务器判卷
答卷扫描识别 考试完成后,通过高速扫描仪将考生答卷扫描到系统服务器,对学生试卷进行关键字(考号)及多字段(选择题)的校对,生成模板. 网上评卷 扫描完成后,导入模板.进行系统管理(项目管理.考试科目) ...
- 计算机网络成绩分析单,网上阅卷系统考试成绩分析
领先科技开发的网上阅卷系统有别于市场现有产品的最大特点是,利用计算机技术的先进性,该系统可将每次考试获得的大量数据进行快速的收集整理,从而获得有助于教学的各方面信息,完成了一些过去人工较难完成的工作, ...
- 计算机网络应用答题卡,网上阅卷系统中答题卡模板自动生成技术研究
摘要: 存各种考试阅卷工作中,传统的手工阅卷消耗巨大的人力和物力,阅卷效率低,且不能保证阅卷质量,同时纸质试卷的保存和运输工作也非常繁杂.因此,随着计算机网络技术和数字图像处理技术的快速发展,一套基于 ...
- 朔州市初中计算机考试试题视频,朔州市初中电脑阅卷 计算机网上阅卷系统
评卷的高效率要求 在社会快速发展.科技日新月异的信息化时代,教学内容的丰富一方面使得学生的学习任务不断加重,另一方面是教师的工作负担随之增加.尤其是在应试教育状况尚未完全改变的今天,"学生减 ...
- 乐华阅卷系统打不开服务器,乐华网上阅卷系统1.0操作手册.docx
-- --- 乐华网上阅卷系统操作手册 第一章安装配置 简介:乐华网上阅卷系统分为"扫描识别"和"主观题网上阅卷"两个子系统. .运行环境 网上阅卷服务器运行环 ...
最新文章
- 2019年企业新增长 从雇佣“机器人员工”开始
- SolrJ查询索引库
- Java之枚举----小试牛刀练习
- 宝塔安装sqlserver_宝塔面板for windows 连接mssql2008
- 全国高等学校计算机水平考试总结,参加全国计算机等级考试的经历和总结
- hdu 5748(LIS) Bellovin
- 《Ruby程序员修炼之道》(第2版)—第1章1.4节易用的Ruby工具和应用程序
- linux定时任务_linux定时任务cron HelloWorld
- 蓝桥杯 ALGO-34算法训练 纪念品分组(贪心算法+排序)
- python运行代码不成功_python的运行时易犯错误,你中招了没?快来学习了
- Hadoop2 自己动手编译Hadoop的eclipse插件
- php ecdsa secp256k1,从上的压缩派生ECDSA未压缩公钥
- Python:Numpy库中的invert()函数的用法
- ubuntu下面火狐浏览器firefox中国版安装遇到到问题和解决办法
- js 验证身份证格式
- Windows GetLastError返回值 【转】
- Unity冒险游戏集合
- 2014acm亚洲区域赛陕西赛总结
- 狂神说-Springcloud笔记
- CS61A Lab 8
热门文章
- Java解压文件的一些坑及经验分享(MALFORMED异常)
- 怎样在php中制作电子相册,制作电子相册 如何将图片制作成视频并配上合适的音乐?电脑制作电子相册的方法...
- 开心农场的玩法、秘笈、攻略
- Ubuntu 下使用go语言调用ffmpeg推流
- 03 装饰着设计模式
- 解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
- 怎么做职业规划?大龄程序员如何突破瓶颈?
- C++期末考试试卷+答案
- 学生考试试卷是几号字体,打印学生试卷去哪里打印
- Java 保存带Clob字段的数据