图像模式匹配(如果存在返回坐标)

Zac*_*iaz 6 c# image-manipulation image-processing

我目前在C#中试图找到一种在大图像中找到特定模式的方法,实际上是截图.需要100%匹配,所以问题非常简单.

测试材料:http: //www.myhideout.eu/temp/pattern.png(注意:透明像素无关紧要,不应进行测试.) http://www.myhideout.eu/temp/test.png

如果找到一个模式,我需要某种坐标,所以我知道在哪里,但这是最简单的部分.

到目前为止我唯一提出的方法是显而易见的.取模式的第一个像素并遍历测试图像直到找到匹配,然后测试模式的其余部分,直到测试失败或没有更多模式.如果测试失败,请继续下一个与模式的第一个像素匹配的像素,然后重试.如果你没有匹配地运行测试图像,那么显然没有这样的模式,这应该是测试的结果.

我的理论是有效的,但实际上事情有点复杂.我还没有用一种正确的方法来构建代码,而我所做的测试用例有一些相当奇怪的错误,考虑到复杂性,这并不是一个大惊喜.

但是,我最关心的是时间.这只是漫长过程的一小部分,目标是将总执行时间缩短到几秒钟.想象一个1920*1200的图像,这是一个极限,模式在最后,并在此之前发生几个部分匹配.

我当然搜索了网络,各种论坛等,但我提出的唯一材料是非常先进的,即使我设法理解它的用途是非常不同的目的也没用.

我也一直在考虑是否有可能将模式和测试图像转换为某种bitset,然后只是AND,SHIFT和/或MASK通过它,但这超出了我目前的能力.

我想我已经在这里描述了我的问题.我很抱歉代码示例的滞后,但我得到的东西对任何人都没用,也有点令人尴尬.

我非常感谢任何帮助.