美文网首页
整张答题卡识别原理(筛选出所有选项)

整张答题卡识别原理(筛选出所有选项)

作者: 大龙10 | 来源:发表于2023-11-09 13:13 被阅读0次

书名:计算机视觉40例从入门到深度学习:OpenCV-Python
作者:李立宗
出版社:电子工业出版社
出版时间:2022-07-01
ISBN:9787121436857


第9章 答题卡识别

9.2 整张答题卡识别原理

9.2.3 筛选出所有选项

1、筛选出所有选项

上述步骤找到了答题卡内所有轮廓,这些轮廓既包含所有选项的轮廓,又包含说明文字等(噪声)信息的轮廓。需要将各选项轮廓筛选出来,具体的筛选原则如下:

  • 轮廓要足够大,不能太小,具体量化为长度大于25像素、宽度大于25像素。
  • 轮廓要接近于圆形,不能太扁,具体量化为纵横比介于[0.6,1.3]。

将所有轮廓依次按照上述条件进行筛选,满足上述条件的轮廓判定为选项;否则,判定为噪声(说明文字等其他信息的轮廓)。

2、【例9.7】找到答题卡内所有轮廓。

import cv2

thresh =  cv2.imread("d:\\OpenCVpic\\thresh.bmp",-1)  
cv2.imshow("thresh", thresh)

cnts, hierarchy = cv2.findContours(thresh.copy(),cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
print("共找到各种轮廓",len(cnts), "个")

#===========筛选出选项的轮廓====
options =[]
for ci in cnts:
    #获取轮廓的矩形包围框
    x,y, w, h = cv2.boundingRect(ci)
    #计算纵横比
    ar = w / float(h)
    # 将满足长度、宽度大于 24 像素且纵横比介于[0.7,1.3]的轮廓加入 options 
    if w >= 24 and h>= 24 and ar >= 0.7 and ar <= 1.4:
        options.append(ci)

# 需要注意的是,此时得到了很多选项的轮廓,但是它们在 options 中是无规则存放的
print("共找到选项",len(options), "个")

# =====将找到的所有选项轮廓绘制出来==
color = (0,0,255) # 红色
# 为了显示彩色图像,将原始图像转换至色彩空间
threshColor=cv2.cvtColor(thresh,cv2.COLOR_GRAY2BGR)
cv2.drawContours(threshColor, options,-1, color, 5)

cv2.imshow("result",threshColor)

cv2.waitKey()
cv2.destroyAllWindows()

运行结果 数据输出

相关文章

  • 联级菜单

    jquery下拉联级菜单 解析使用采用jQuery利用class作为识别符,将级联下拉列表框选出来。当选项发生变化...

  • 三千塔罗月运:2016年5月运势

    选出以下最有感觉的一张图,塔罗测试看看,你下个月运势如何。 1 2 3 4 【选项结束,请选出以上最有感觉的一张牌...

  • SAT数学常见五大错误总结

    一、手残式错误 1. 做对但选错了选项 2. 选对选项但涂错了答题卡 3. 涂串答题卡 4. 应用题2/3涂成了3...

  • CollectionView分组,组头高度自适应

    需求:选中答题卡中一个选项,下次进入答题卡,选中的题在屏幕中. 因为要实现选中的滚动居中效果,使用tableVie...

  • 1226 - 搞定 iText 连续识别

    先上图: 主要要解决的是此类问题:比如,有时会需要识别 PDF 这种排版复杂的「图片」,如果直接把整张图拿去识别,...

  • array-布尔类型索引

    问题:给一个数组,选出数组中所有大于5的数 原理 求取大于5的偶数

  • 三月初

    暴露某内置筛选项下的值在快筛栏中,若这个筛选项下包括该值在内的多个值被选中,快筛栏该如何回应?举个例子,我们可以在...

  • Eratosthenes素数筛

    今天我们要学习素数筛,可以快速筛选出素数。讲解之前,别忘了收藏我的编程专题哦筛法理念 将合数从一堆数里面筛出,只留...

  • 质因子分解(素数埃氏筛法)[PAT A1059]

    埃氏筛法原理质因子分解结论

  • vue响应式原理

    原理 vue实例的data选项,vue 将遍历此对象的所有的属性,并使用 Object.defineProper...

网友评论

      本文标题:整张答题卡识别原理(筛选出所有选项)

      本文链接:https://www.haomeiwen.com/subject/gwjcwdtx.html