C# 在较大的图像中查找图像位置

C# 在较大的图像中查找图像位置,c#,image-recognition,C#,Image Recognition,基本上我想在一张大图像中找到一张小图像的像素位置。 我已经搜索过类似的东西,但没有运气。您可能可以使用来做类似的事情。它提供了多种图像处理工具。可能您可以使用它们的斑点提取来提取斑点,然后将这些斑点与存储的图像进行比较,看看它们是否匹配。如果图像逐像素相等,您可以从搜索小图像中与像素(0,0)颜色相同的一个像素开始。找到后,比较小图像覆盖区域中的每个像素。如果没有差异,你就会找到你的位置。否则,请从搜索下一个像素匹配(0,0)开始。如果您将像素视为字符并正在寻找精确匹配,则搜索听起来像是一个解决

基本上我想在一张大图像中找到一张小图像的像素位置。
我已经搜索过类似的东西,但没有运气。

您可能可以使用来做类似的事情。它提供了多种图像处理工具。可能您可以使用它们的斑点提取来提取斑点,然后将这些斑点与存储的图像进行比较,看看它们是否匹配。

如果图像逐像素相等,您可以从搜索小图像中与像素(0,0)颜色相同的一个像素开始。找到后,比较小图像覆盖区域中的每个像素。如果没有差异,你就会找到你的位置。否则,请从搜索下一个像素匹配(0,0)开始。

如果您将像素视为字符并正在寻找精确匹配,则搜索听起来像是一个解决方案。也比每像素搜索快得多。

这取决于您希望结果与查询图像的相似程度。如果您试图匹配不同真实照片图像的相应部分,请查看维基百科页面。您想要使用什么取决于您希望一个图像变成另一个图像的转换


这就是说,如果你正在寻找一个精确的逐像素匹配,暴力搜索可能是不好的。对于用于在
n*n
图像中搜索的
m*m
图像,它可以是
O(m^2*n^2)
。使用更好的算法,它可以改进为
O(n^2)
,像素数呈线性。对两幅图像进行降采样并进行分层搜索可能是一种好方法。

小图像是否是大图像中某个区域的精确逐像素副本?选择算法时,这一点相当重要。