像素阈值求值方法

像素阈值求值方法使用 Recog_Shared 库中的 RecogOMRThreshold 操作。

指定阈值和背景级别

RecogOMRThreshold 操作需要两个参数:

  • 阈值:指定将选项视为选中的黑色像素百分比。
  • 背景:用于确定置信度级别并指定复选框边框加上任何扫描仪噪点构成的百分比。
    • 黑色像素百分比低于该值的任何区域均被视为未选中,并含高置信度。 黑色像素百分比在该值到阈值之间的任何专区均被视为未选中,并含低置信度。
    • 黑色像素百分比超过(2 * 阈值 - 背景)的任何专区被视为已选中,并具有高置信度。 黑色像素百分比在阈值到(2 * 阈值 - 背景)之间的任何区域均被视为已选中,并具有低置信度。

但如果 MultiPunch=0(或未指定),那么仅选中最高百分比的专区。

例如,如果阈值为 20,并且背景值为 15,那么高置信度阈值为 (2 * 20 - 15) = 25。 如果对 MultiPunch=1 的 OMR 组字段运行 RecogOMRThreshold (20,15),那么存在以下情况。
  • 具有超过 25% 黑色像素的任何专区均被视为已选中,并具有高置信度
  • 20% 到 25% 之间的任何专区被视为已选中,并具有低置信度
  • 15% 到 20% 之间的任何专区被视为未选中,并具有低置信度
  • 含不超过 15% 的黑色像素的任何专区均被视为未选中,并具有高置信度

确定相应的阈值和背景值

您必须为阈值和背景参数确定相应的值。 确定 OMR 专区中复选框边框加上任何扫描仪噪点构成的像素的百分比。 确定此百分比的最简单的方式是通过工作流程运行包含已选中和已清除的选项框的页面。 然后从页面数据文件中获取像素计数。

Datacap 运行 RecogOMRThreshold 操作时,它会计算每个 OMR 区域中的黑色像素数。 Datacap 然后将生成的值作为密度字符串写入页面数据文件。
</F>
<F id="Options">
        <V n"Type">Options</V>
        <V n"Position">1171,327,1518,622</V>
        <V n"STATUS">0</V>
        <V n="DensityString">FBG</V>
        <C cn="10" cr="1440,405,1490,418">49</C>
        <C cn="10" cr="1440,475,1490,525">48</C>
        <C cn="10" cr="1440,541,1490,591">49</C>
</F>
DensityString 的每个 OMR 专区含一个字符。 在此代码示例中,Options 字段含三个 OMR 专区,DensityString 值为 FBG。 根据以下公式,每个字符对应于一个百分比值。
Percentage black pixels = character's ASCII code value minus 48.
在此示例中:
  • 字符的 ASCII 代码为 70、66 和 71。
  • 这些专区的黑色像素百分比为 22% (70-48)、18% (66-48) 和 23% (71-48)。
获取百分比值之后,可参阅原始页面图像以确定是否已选中对应的复选框。 此示例是从已选中第一和第三个选项且未选中第二个选项的页面获取的。
复选框 填充的百分比
复选标记 22%
空的正方形 18%
复选标记 23%

根据这三个复选框,设置 18 到 22 之间的阈值和背景值。 (针对阈值和背景参数允许小数值。) 您可以在设置最终值之前测试扫描其他页面的值以及检查其密度字符串的值。

使用 RecogOMRThreshold 的含义

RecogOMRThreshold 操作依赖于 OMR 专区内的像素计数。 因此,所有 OMR 专区尺寸相同或者尽可能接近是至关重要的。

有时很难在 Datacap Studio 区域 选项卡上绘制 OMR 区域。 您可以通过在图像视图选项卡上绘制边界框来确定近似区域边界。 然后,在 属性 窗格的 Pos 变量字段中编辑坐标。

坐标对应于边界框的左上角(例如,x1, y1 坐标)和右下角 (x2, y2)。 在此示例中,在 Pos 变量字段中输入 x1,y1,x2,y2