0

我有一个项目,我需要从传入的用户填充图像中减去空的模板图像。文件类型是正常的银行支票。模板匹配 - 图像减法

目的是通过从空模板图像中减去一个图像来从中提取手写区域。

我面临什么样的问题是在调整这两个图像,因为有缩放,平移,旋转等

如何与输入的图像对准模板图像的任何想法?

更新1:

我从wikipedia页,但在单色格式为我的形象发布的示例图像是黑白格式。 alt text

+0

你能发布示例图片吗? – 2010-10-01 13:27:47

+0

@Loic,我的示例图像就像任何其他银行支票一样。唯一的不变的特点是行和几个字,如支付 – Raj 2010-10-01 13:51:04

+0

的订单是否来自同一家银行的所有支票? – 2010-10-01 13:53:43

回答

1

基本的答案是编写一个函数,它接受两个图像和一个2D变换,并告诉您将变换应用到目标图像后它们是如何对齐的。该函数需要基于变换而连续,并且具有图像完美对齐的局部最小值(0)。这被称为成本函数。

然后在函数和输入上使用任何优化算法 - 您试图优化变换(平移,缩放,旋转)。例如爬山,遗传,模拟退火等。

有些产品可以做到这一点 - 通常他们被称为表格识别,表格注册,表格处理等。一些是SDK,但也有应用程序可以不用编程就可以做到。

声明:我在Atalasoft工作,我们向我们的.NET图像SDK出售Forms Processing add-on

+0

+1 @Lou,感谢您的洞察力。你能否指点我一些成本函数的例子/解释?或者在你指向的变换上添加更多细节? – Raj 2010-10-01 13:03:20

+0

成本函数是任何你认为决定一个对齐的图像。如果有边框,并且您可以找到它 - 可以是边框的大小,位置和旋转差异。你需要挑选一些可以找到的东西,不管大小,比例和旋转。我写了一篇codeproject文章,会给你一些想法:http://www.codeproject.com/KB/showcase/SimpleOMRDotImage.aspx – 2010-10-01 14:27:47

3

在处理工业项目的图像处理时,我们在大多数情况下都有一个基准。基准就像一个标记 - 可以是一个洞,一个十字标记 - 永远不会改变,总是处于相同的位置。

一般来说,两个基准点足以纠正像旋转,平移和缩放等错位问题。例如,如果您知道两者之间的距离,您可以随时检查它以确保比例因子是正确的,或者根据当前距离与正确距离的差异进行校正。

就你而言,我会问你的是:模板和传入图像是否共享任何不变且可以轻松分割的可视标志?

如果你有这个问题的答案,其余的将会更简单 - 差异本身是一个非常简单的算法。

+0

如果没有基准Raj可以通过:角点检测,匹配,旋转/缩放估计,图像对齐。但这取决于它的速度有多快...... – 2010-10-01 11:11:03

+0

常见功能是预先打印的文本,水平线等是的,我可以将它们用作标记。说如果我想找到这条线,我写了一个连接的组件,但它占用了所有连接的组件,并且边界矩形变得非常大。在这种情况下,我如何优化以实际分割线。在我的情况下,处理时间是一个约束。 – Raj 2010-10-01 12:20:50

+0

这很难说。你确定这条线是你可以使用的最好的'基准'吗?正如@Loïc所说,发现角落将是一个更好的解决方案。但它取决于很多因素,如照明。如果没有您的图片样本,有点难以说明它可以如何正确完成。 – Andres 2010-10-01 13:22:24