我正在开发一款文档处理应用程序,可以生成和读取表格。附上的示例表格是作为打印文档生成的,由人们填写、扫描并反馈到应用程序中以检测填写的值,包括光学标记(气泡)、文本(OCR)等。点击此处查看示例表格。
由于扫描会扭曲图像的旋转、缩放和平移,我使用三个标记来检测方向并以非常原始的方式纠正图像,这对计算和内存都非常昂贵。以下是其要点:
或者,必须有一种方法可以在单个图像上应用所有三个转换而不会影响下一个转换。这也将减少需要三次检测blob的需求。
由于扫描会扭曲图像的旋转、缩放和平移,我使用三个标记来检测方向并以非常原始的方式纠正图像,这对计算和内存都非常昂贵。以下是其要点:
- 从磁盘中读取图像。
- 使用AForge.net检测blob。
- 使用形状、相对大小和其他属性过滤出标记。
- 计算旋转并旋转图像。
- 使用AForge.net从旋转后的图像中检测blob。
- 计算比例并缩放旋转后的图像。
- 使用AForge.net从缩放后的图像中检测blob。
- 计算平移并平移旋转、缩放后的图像。
- 使用AForge.net从平移后的图像中检测blob。
- 过滤答案标记(气泡),因为我已经拥有原始表格的位置。
- 提取平均颜色并与阈值进行比较,以确定选项是否已填写。
或者,必须有一种方法可以在单个图像上应用所有三个转换而不会影响下一个转换。这也将减少需要三次检测blob的需求。