查找图像中的子图像
我有一个相当简单的情况。 我只是不知道任何具体的搜索条件。 我有一个图像,在该图像中我有几个其他图像遵循基本模式。 它们是矩形,可能具有标志性图像,可以作为基础。 一个重要的部分是,我需要检测旋转/错误缩放的子图像。
基本上我需要做的是将“名片”从单个图像拆分为正确对齐的单个图像。
请原谅我糟糕的油漆技巧! http://yfrog.com/eaproblemjj由于我还在设计要扫描的卡片,我可以放入任何符号或其他可以使检测更容易的东西(正如我所说的那样具有里程碑意义)
如果你的例子具有代表性(我怀疑由于某些原因)那么Hough变换就是你的朋友(google it,有很多解释和代码)。 有了它,你将能够检测到矩形。
C#中Hough变换的一些例子是http://www.koders.com/csharp/fid3A88BC1FF95FCA9D6A182698263A40EE7883CF26.aspx和http://www.shedletsky.com/hough/index.html
如果实际发生的是你扫描一些卡片,并且你对这个过程有一些控制权,那么我建议你确保卡片之间没有重叠,并提供对比背景(与卡片有很大不同)。 然后任何边缘检测都会让您足够接近您在示例中绘制的内容,之后您可以使用Hough变换。
或者,你可以实现论文http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.59.4239 ,它使用Hough变换直接检测矩形,没有边缘检测。
如果我不理解您的问题,或者您需要澄清,请进一步编辑您的问题,并对此答案发表评论。
尝试AForge.NET(如果您使用的是C#)。 它有DocumentSkewChecker,它将计算旋转图像的角度。
你可以试试ExorgetiveTemplateMatching类的AForge.Net
- 使用C#在Windows 7中创建metro风格的winform
- localhost上UDP包丢失的原因?
- ASP Web Api – IoC – 解析HttpRequestMessage
- 是否有网站每天通过电子邮件发送C#提示和技巧?
- 如何将System.Byte 转换为Image? (C#窗口forms)
- 如何强制退出网站的所有用户?
- 如何从某个网页复制所有文本并将其保存到记事本C#
- 如何使用Entity Framework Code-First方法将double 数组存储到数据库
- 在WPF UserControl上使用Rx over事件,为什么当窗口最大化时控件会收到mousedown和mousemove?