2012-02-03 46 views
0

我想知道是否可以比较两个BitmapData并获得“相似度百分比”(知道它们的外观如何相似)。 我已经做了一些研究,并且遇到了bitmapData.compare(otherBmd),但只有当它们的大小或像素不同时才会返回,而不是它们有多少不同。在ActionScript 3中比较两个BitmapData

的这点是比较一些BMD通过与图书馆图像的摄像机获得的(所以这是我至今):

import flash.display.Bitmap; 
import flash.display.BitmapData; 

var img1:BitmapData = new monaLisa(); 

var cam:Camera = Camera.getCamera(); 
var video:Video = new Video(camMock.width,camMock.height); 
video.attachCamera(cam); 
video.x=camMock.x; 
video.y=camMock.y; 
addChild(video); 

var pic:BitmapData = new BitmapData(video.width,video.height); 

var picBmp:Bitmap = new Bitmap(pic); 
picBmp.x = camMock.x; 
picBmp.y = camMock.y; 

captureCam.buttonMode = true; 
captureCam.addEventListener(MouseEvent.CLICK,captureImage); 

function captureImage(e:MouseEvent):void { 
    pic.draw(video); 
    trace(pic.compare(img1)); 
    //compare two bmd 
     //do x 
} 

另外,请与我裸露。我是菜鸟。

回答

3

不是百分比,但它应该返回一个新的BitMapData对象,您可以将其指定为图像。
BitMapData.compare()

返回 对象 - 如果两个BitmapData对象具有相同的尺寸(宽度和高度),该方法返回具有两个对象之间的差异(参见主要讨论的一个新的BitmapData对象)。如果BitmapData对象是等价的,则该方法返回数字0.如果BitmapData对象的宽度不相等,则该方法返回数字-3。如果BitmapData对象的高度不相等,则该方法返回数字-4。

+0

我明白了。非常感谢你。 – mikemakesgames 2012-02-03 22:17:42

+1

虽然不是我正在寻找的。 – mikemakesgames 2012-02-04 22:04:03