一.原理说明
本文的主要思想:
-
对输入的图像进行预处理,包括灰度化、高斯模糊、边缘检测等。
-
对预处理后的图像进行轮廓检测,找到最大轮廓(即整张答题卡)。
-
对最大轮廓进行透视变换,得到变换后的图像。
-
对变换后的图像进行 Otsu's 阈值处理,得到二值化图像。
-
对二值化图像进行圆圈轮廓检测,找到每个圆圈的轮廓,并按照从上到下的顺序排序。
-
对每一行圆圈轮廓进行排序,并遍历每一行的五个圆圈。
-
对每个圆圈轮廓进行判断,使用 mask 去计算圆圈内非零点数量,从而判断是否选择了该答案。
-
对比正确答案,将正确的答案标记为绿色,错误的答案标记为红色,并计算正确率。
-
在变换后的图像上绘制出标记了正确和错误答案的结果,并输出正确率。