c# - C# 中的图像转换

标签 c# image transformation

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

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

  1. 从磁盘读入图像。
  2. 使用 AForge.net 检测球。
  3. 使用形状、相对大小和其他属性过滤出标记。
  4. 计算旋转并旋转图像。
  5. 使用 AForge.net 从旋转的图像中检测球。
  6. 计算缩放和缩放旋转图像。
  7. 使用 AForge.net 从缩放后的图像中检测球。
  8. 计算平移并平移旋转、缩放的图像。
  9. 使用 AForge.net 从翻译后的图像中检测 bolbs。
  10. 过滤掉答案标记(气泡),因为我已经有了原始表格的位置。
  11. 提取平均颜色并与阈值进行比较以确定选项是否已填充。

以上是一种极其准确但效率低下的处理方式,我希望采用几何方法仅一次提取 Blob ,过滤掉标记/气泡并使用简单的数学计算出气泡相对于标记的预期位置。这应该会减少 80% 的处理时间和 60% 的内存使用量。

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

最佳答案

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

关于c# - C# 中的图像转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7701448/

相关文章:

c# - 简单选择上的 LINQ NullReferenceException

automation - 网站如何自动抓取个人资料图片?

python - Python 中的仿射 3D 变换

R - 数据框切换行和列

File.AppendAllText 的 C# 速度

c# - Linq-已添加具有相同 key 的随机项目错误

ios - 将源图像与一组已知图像进行比较

javascript - 使用 JavaScript 单击后 src 图像更改器

Python/PIL仿射变换

C# - 空与 "Could not evaluate expression"