C中的图像转换#
我正在生成和读取表单的文档处理应用程序。所附的样本表格作为印刷文档生成,由人员填写,扫描并反馈给应用程序以检测填充值,包括光学标记(气泡),文本(OCR)等。Click here for Sample Form。C中的图像转换#
由于扫描扭曲旋转,缩放和平移方面的形象,我用了3个标记进行检测取向和是在计算和存储非常昂贵的一个相当原始的方式调整影像。这是它的要点:
- 从磁盘读取图像。
- 使用AForge.net检测bolbs。
- 使用形状,相对大小和其他属性过滤标记。
- 计算旋转和旋转图像。
- 使用AForge.net从旋转后的图像中检测出bolbs。
- 计算比例和缩放旋转图像。
- 使用AForge.net从缩放图像中检测出bolbs。
- 计算翻译和翻译旋转,缩放图像。
- 使用AForge.net从翻译图像中检测出bolbs。
- 过滤掉答案标记(气泡),因为我已经有了原始表单的位置。
- 提取平均颜色并与阈值进行比较以确定选项是否已填充。
上述被处理,我期待采取的几何方法来提取斑点只有一次,过滤出标记/气泡,并使用简单的数学计算出相对于气泡的预期位置非常精确的,但低效率的方式标记。这应该减少80%的处理时间和60%的内存使用量。
或者,必须有申请一个图像上的所有三个转变没有一个影响下次的方式。这也会减少三次斑点检测的需求。
我将图像模型并做转换对模型在内存中,而不是实际的图像。然后,一旦你计算出转换矩阵,你可以将它应用到实际的图像来做OCR。
谢谢。您能否详细说明对图像进行建模? –
对不起,我想我所说的是,如果你可以计算出一个矩形的斑点,那么不用旋转图像,你可以将矩形对象的旋转应用为矩阵变换。然后你应该能够知道blob将会在哪里,然后你就可以用这种方式计算出规模和翻译。一旦你有了最终的转换矩阵,就把它应用到图像上,你应该完成。对图像进行单一转换。 –
谢谢。这就是我正在寻找的,但不知何故结果似乎并不准确。当我使用应用旋转,缩放和平移到矩阵并最终调用变换时,它们似乎受到被调用序列的影响。 –
你问什么具体问题? –
我想找出气泡标记相对于黑色标记的坐标,而不是必须转换实际图像。 –
目标是读取这些气泡标记的像素值,以确定它们是否被用户填充。 –