我有一个项目,我需要从传入的用户填充图像中减去一个空模板图像。单据类型是普通银行支票。
目的是通过从空模板图像中减去一个图像来从中提取手写字段。
我面临的问题是对齐这两个图像,因为有缩放、平移、旋转等
关于如何将模板图像与传入图像对齐的任何想法?
更新 1:
我正在发布来自维基百科页面的示例图像,但以单色格式发布,因为我的图像是单色格式。
我有一个项目,我需要从传入的用户填充图像中减去一个空模板图像。单据类型是普通银行支票。
目的是通过从空模板图像中减去一个图像来从中提取手写字段。
我面临的问题是对齐这两个图像,因为有缩放、平移、旋转等
关于如何将模板图像与传入图像对齐的任何想法?
更新 1:
我正在发布来自维基百科页面的示例图像,但以单色格式发布,因为我的图像是单色格式。
在为工业项目使用图像处理时,我们在大多数情况下都有一个基准。基准就像一个标记 - 可以是一个孔,一个十字标记 - 永远不会改变,总是在相同的位置。
通常,两个基准足以纠正旋转、平移和缩放等错位问题。例如,如果您知道两者之间的距离,则可以随时检查以确保比例因子正确,或者根据当前距离与正确距离的差值进行校正。
在您的情况下,我要问您的是:模板和传入图像是否共享任何不变且易于分割的视觉符号?
如果你有这个问题的答案,那么剩下的一切都会变得更简单——不同之处本身就是一个非常简单的算法。
基本答案是编写一个函数,该函数接受两个图像和一个 2D 变换,并告诉您在将变换应用于目标图像后它们的对齐程度。该函数需要基于变换是连续的,并且具有图像完美对齐的局部最小值 (0)。这称为成本函数。
然后对函数和输入使用任何优化算法——您正在尝试优化变换(平移、缩放、旋转)。例如爬山、遗传、模拟退火等。
有些产品可以做到这一点——通常它们被称为表单识别、表单注册、表单处理等。有些是 SDK,但也有一些应用程序可以在没有编程的情况下完成。
免责声明:我在 Atalasoft 工作,在那里我们向我们的 .NET 成像 SDK销售表单处理插件。