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

标签 c# image-processing image-manipulation

我目前正在 C# 中试图找出一种在大图像中查找特定模式的方法,实际上是屏幕截图。需要 100% 匹配,所以问题很简单。

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

如果找到模式,我将需要某种坐标以便我知道在哪里,但这是简单的部分。

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

我理论上这是可行的,但实际上事情要复杂一些。我还没有给你提供构建代码的正确方法,我所做的测试用例有一些相当奇怪的错误,考虑到复杂性,这并不奇怪。

然而,我最关心的是时间。这只是漫长过程的一小部分,目标是将总执行时间缩短到几秒钟。想象一个 1920*1200 的图像,这大约是极限,其中模式在末尾,并且在此之前发生了几个部分匹配。

我当然搜索过网络、各种论坛等,但我想出的唯一 Material 非常先进,即使我设法理解它的用途非常不同,也没什么用处。

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

我想我已经在这里描述了我的问题。对于代码示例的滞后,我很抱歉,但是我所获得的内容对任何人都没有多大用处,而且有点令人尴尬。

我将非常感谢任何帮助。

最佳答案

关于c# - 图像模式匹配(如果存在返回坐标),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5171894/

相关文章:

c# - 测试中的代码覆盖率

php - dompdf图像溢出问题

java - 哪些Java库可用于基本图像处理?

php - 如何检测图像中的 'image area' 百分比?

c# - 从表达式中获取父成员

c# - Python 到 C# 的 RGBA 值转换不起作用

C#线程似乎启动了多次

javascript - 异常 float 参数不是有限 Canvas

linux - 如何从 linux 命令行纵向连接 SVG 文件?

python - 计算图形的方向以将其拉直(在Python中)