查找图像中的子图像

时间:2010-02-27 08:11:02

标签: c# image-processing

我有一个相当简单的情况。我只是不知道任何具体的搜索条件。 我有一个图像,在该图像中我有几个其他图像遵循基本模式。 它们是矩形,可能具有标志性的图像,可以作为基础。 一个重要的部分是,我需要检测旋转/错误缩放的子图像。

基本上我需要做的是将“名片”从单张图像拆分为正确对齐的单张图像。

由于我还在设计要扫描的卡片,我可以放入任何符号或其他可以使检测更容易的东西(正如我所说的那样具有里程碑意义)

3 个答案:

答案 0 :(得分:2)

如果您的示例具有代表性(我怀疑由于某种原因),那么Hough变换就是您的朋友(google it,有很多解释和代码)。有了它,你将能够检测到矩形。

C#中的Hough变换的一些示例是http://www.koders.com/csharp/fid3A88BC1FF95FCA9D6A182698263A40EE7883CF26.aspxhttp://www.shedletsky.com/hough/index.html

如果实际发生的事情是你扫描一些卡片,并且你对这个过程有一些控制权,那么我建议你确保卡片之间没有重叠,并提供对比鲜明的背景(与卡片有很大不同) )。然后,任何边缘检测都会让您足够接近您在示例中绘​​制的内容,之后您可以使用Hough变换。

或者,您可以实现使用Hough变换直接检测矩形的文件http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.59.4239,而不进行边缘检测。

如果我不理解您的问题,或者您需要澄清,请进一步编辑您的问题,并对此答案发表评论。

答案 1 :(得分:1)

尝试AForge.NET(如果您使用的是C#)。它有DocumentSkewChecker,它将计算旋转图像的角度。

答案 2 :(得分:0)

你可以尝试一下AForge.Net的ExhaustiveTemplateMatching类