[发明专利]一种基于三点定位和直线定位的图片分割方法及系统在审
申请号: | 201510888787.4 | 申请日: | 2015-12-03 |
公开(公告)号: | CN106846320A | 公开(公告)日: | 2017-06-13 |
发明(设计)人: | 任年峰;张伟;陈存跃;侯发毅;谷鹏霄;曹福金 | 申请(专利权)人: | 山大鲁能信息科技有限公司 |
主分类号: | G06T7/10 | 分类号: | G06T7/10;G06T3/60 |
代理公司: | 济南圣达知识产权代理有限公司37221 | 代理人: | 张勇 |
地址: | 250100 山东省济南市山*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 定位 直线 图片 分割 方法 系统 | ||
技术领域
本发明涉及图象定位解析技术,应用于图象分割,具体涉及一种基于三点定位和直线定位的图片分割方法及系统。
背景技术
现有的计算机阅卷方式是:首先用高速扫描仪将答题卡扫描至扫描端后通过网络上传至阅卷服务器,客观题部分根据设置好的标准答案,系统会自动统计结果,无需人工干预,主观题部分根据提供的切割方案将上传的答题卡主观题部分自动切割,由指定的阅卷员进行网上阅卷,待主观题部分全部批阅完后,系统可将客观题部分和主观题部分进行统计汇总,并可导出相关的统计结果。如图6所示。
计算机网络阅卷由于其在阅卷质量、阅卷效率和对提高教学质量等方面具有显著的优势,特别是在教学质量监测与评估要求不断提高的今天,它必将日益受到重视并成为未来各类考试的主要阅卷方式。
目前的计算机阅卷在实现答题卡主观题部分切割图片时,采用三点定位的方式,依据答题卡上预先打印的三个锚点,定义一个标准的方框,实现图片的切割。这种方式基本可以满足中学以上的切割答题卡的需求,但在小学生存在乱涂乱画时,存在三个锚点不能准确定位的情况,切割答题区域时,就会出现错误。
发明内容
为解决现有技术存在的不足,本发明公开了一种基于三点定位和直线定位的图片识别方法及系统,基于三点定位和直线定位的切割图片,来实现图象分割,达到切分答题区域的目的。
为实现上述目的,本发明的具体方案如下:
一种基于三点定位和直线定位的图片分割方法,包括以下步骤:
答题卡的扫描:通过扫描组件逐张获取每张答题卡,将答题卡制作成对应的图片,将图片保存至设定的位置,数据库记录存储位置;
答题卡图片旋转:通过数据库读取每一张图片,识别整个答题卡的开始标点和结束标点,依据标点旋转图片,保证图片标点之间水平;
答题卡分割:通过数据库读取旋转后的每一张图片,读取图片中每一个标点的位置,依据数据库中设置的答题区域的长宽,通过计算下一个标点是否为结束标点,判断结束标点位 置;读取图片中开始标点和结束标点之间是否存在直线,如果存在,则该答题区域为一道试题,如果不存在直线,择认为选取的结束标点错误,继续寻找下一个标点,判断是否是对应的结束节点;
找到结束节点,将该答题区域使Graphics方法,切分成一张小图片,并将对应信息记录到对应数据库中。对应信息是指:对应图片名称及题号、试题在系统中的编号等。每张试卷在数据库中都对应一个ID,切分的每张图片都有一个小ID,ID之间对应起来即可。
进一步的,在扫描答题卡之前还需要答题卡的制作:将主观题及客观题分别设置在同一张答题卡上并分别设置对应的答题框,在客观题对应的答题框内设定起始位置开始标点,设置起始标点横竖对应的结束标点,设置起始标点和结束标点对应的直线,在主观题对应的答题框内对每个主观题均设置开始结束对应标点并设置标点之间连线。
更进一步的,在制作答题卡时,在标点之前还需要从数据库中获取答案数量及每个试题的答题空间大小,计算客观题答题区域长宽,获取试题数量,获取客观题答案个数及标号,计算得出客观题在答题卡中起始位置;每个主观题单独计算在答题卡中的位置。
进一步的,通过扫描组件获取每张答题卡时,在数据库中记录图片信息,包括名称及扫描时间,扫描出错时,数据库记录出错出现位置。
进一步的,旋转图片时,旋转角度计算方式:定义旋转轴的位置为A点,触点点下的位置为B点,触点弹起的位置为C点,由ABC三个顶点构成了一个三角形,各顶点所在的角为角A、角B、角C,各顶点正对的三角形的边为a、b、c,计算角A的度数。
更进一步的,计算角A的度数时,A点的坐标(x,y)通过图片的位置和图片的长宽获取到,B点和C点的坐标(x1,y1),(x2,y2)可以从motionEvent中得到,三角形各边边长为:
double a=Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
double b=Math.sqrt((x-x2)*(x-x2)+(y-y2)*(y-y2));
double c=Math.sqrt((x1-x)*(x1-x)+(y1-y)*(y1-y));
得到角A的余弦值为double cosA=(b*b+c*c-a*a)/(2*b*c);
则角A的弧度为double arcA=Math.acos(cosA);
这个弧度是0-PI之间的,换成角度使用double angleA=arcA*180/Math.PI。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山大鲁能信息科技有限公司,未经山大鲁能信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510888787.4/2.html,转载请声明来源钻瓜专利网。