一、前言
使用光学字符识别 (OCR) 识别图像中的七段数字。在此示例中,将使用函数和区域属性来检测图像中的七段文本区域。然后,使用 OCR 识别检测到的文本区域中的七段数字。
二、读取图像
将图像读入工作区。
三、检测七段文本区域
使用该函数检测输入图像中的文本区域。该值是用于本地化图像中每个字符的区域阈值。该值是相关性阈值,用于定义将两个检测到的文本分组到单个实例中的分数。您可以通过修改区域和相关性阈值来微调检测结果。增加相关性阈值的值,以进行更多字级和字符级检测。
将关联阈值的值设置为 0.005。区域阈值的默认值为 0.4。输出是一组边界框,用于本地化输入图像中的文本区域。边界框指定图像中检测到的文本区域的空间坐标,并且是形式为 [、、、] 的向量。矢量指定检测到的区域的左上角和大小(以像素为单位)。
使用该函数在图像上绘制输出边界框。
显示输入图像和输出文本检测。
在输入图像中,七段文本区域占据最大面积。使用检测到的边界框的区域提取七段文本区域。
计算边界框的面积并找到具有最大面积的边界框。
从输入图像中提取具有最大边界框区域的文本区域。显示提取的七段文本区域。
四、识别七段数字
使用函数识别检测到的文本区域中的七段数字。将名称-值参数的值设置为“.输出是一个对象,其中包含有关已识别文本、识别置信度以及文本在原始图像中的位置的信息。
显示识别的七段数字。您可以注意到,OCR 检测到两个包围文本区域的边界框,并识别每个区域中的数字。
五、获得准确结果的挑战
准确识别七段数字的主要挑战是文本区域的分割和函数名称-值参数的选择。
作为预处理步骤,该函数执行二值化以将文本区域与背景分割开来。由于七段文本图像的性质,二值化文本区域具有断开连接的像素。如果沿垂直方向断开连接的像素之间的距离很大,,则该函数将输入图像视为具有多行文本。然后,该函数将每行文本分组到一个区域中,并识别每个区域中的数字。因此,识别结果可能不准确。在这种情况下,您可以通过为参数选择适当的值来提高识别精度。
六、使用参数改善结果
如果检测到的图像区域仅包含一行七段文本,则可以设置名称值参数,以获得良好的识别结果。
输入图像包含一组七段数字。计算 OCR 结果。
显示识别的七段数字。使用该函数在图像上绘制输出边界框。显示识别结果。您可以注意到图像中的七段文本区域已很好地定位,并且正确识别了数字。