2010-06-16 30 views
2

使用Actionscript 3可以搜索一个位图来查找与另一个位图的像素匹配的坐标吗?搜索BitmapData对象以匹配来自另一个位图的像素值

http://dl.dropbox.com/u/1914/wired.png

不知怎的,你将通过更大的位图来寻找和匹配,并返回这些坐标的像素范围必须循环。例如,带有“E”的位图在较大的位图上是250像素和14像素。

我一直没有能够自己拿出解决方案。谢谢。

+0

是一个足够好的像素完美匹配还是您需要模糊匹配? – grapefrukt 2010-06-16 19:32:14

+0

为我的目的它将是像素完美的,并且不需要模糊匹配。 – Cos 2010-06-20 16:53:31

回答

0

有没有内置的方式来做到这一点,但如果你不介意使用暴力,那么当然AS3为你提供了所需的工具。例如,您可以循环使用BitmapData.compare()函数将源图像与目标的相似大小的块进行比较。如果两者完全相同,则返回的BitmapData将全部为黑色(您可以快速检查getColorBoundsRect是否为真)。您也可以通过最初仅检查几个像素(或getPixel)或几行像素与getVector,并只检查完整的图像,如果他们匹配。

这就是假设你不需要模糊匹配,并且你不介意本质上的强力解决方案。如果其中任何一种情况都不是这样,那么你最好重新提出这个问题作为一个通用算法问题。 :D

1

因为已经有人说过没有原生函数可以让你这样做,但是你可能想看看Eugene Zatepyakin的ASSURF库:http://code.google.com/p/in-spirit/wiki/ASSURF - 它会在目标材料中找到你的搜索模板如果它旋转,缩放或透视失真。

+0

哇很酷的东西,谢谢你的分享。 – Cos 2010-06-20 16:54:21

相关问题