C#中的图像转换

时间:2011-10-09 04:29:36

标签: c# image transformation

我正在开发一个生成和读取表单的文档处理应用程序。附加的样本表格作为打印文档生成,由人填写,扫描并反馈给应用程序以检测填充值,包括光学标记(气泡),文本(OCR)等。Click here for Sample Form

由于扫描在旋转,缩放和平移方面扭曲图像,我使用三个标记来检测方向并以相当原始的方式校正图像,这在计算和存储方面非常昂贵。以下是它的要点:

  1. 从磁盘读取图像。
  2. 使用AForge.net检测bolbs。
  3. 使用形状,相对大小和其他属性过滤掉标记。
  4. 计算旋转并旋转图像。
  5. 使用AForge.net检测旋转图像中的bolbs。
  6. 计算比例和缩放旋转图像。
  7. 使用AForge.net检测缩放图像中的bolbs。
  8. 计算平移并平移旋转的缩放图像。
  9. 使用AForge.net从翻译的图像中检测出bolbs。
  10. 过滤掉答案标记(气泡),因为我已经拥有原始表格的位置。
  11. 提取平均颜色并与阈值进行比较以确定选项是否已填充。
  12. 以上是一种非常准确但效率低下的处理方法,我希望采用几何方法来仅提取blobs,过滤掉标记/气泡,并使用简单的数学计算气泡相对于标记的预期位置。这应该将处理时间减少80%,内存使用量减少60%。

    或者,有一种方法可以在单个图像上应用所有三个变换而不会影响下一个图像。这也将减少blob检测三次的需要。

1 个答案:

答案 0 :(得分:0)

我会对图像建模并在内存中对该模型进行转换而不是实际图像。然后,一旦计算出变换矩阵,就可以将其应用于实际图像以进行OCR。