我想知道无论如何我可以比较两个BitmapData并获得“相似百分比”(知道它们看起来有多相似)。 我做了一些研究并遇到了bitmapData.compare(otherBmd),但是只有它们的大小或像素不同才会返回,而不是它们有多大差异。
关键在于将通过相机获得的一些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
}
答案 0 :(得分:3)
不是百分比,但它应该返回一个新的BitMapData对象,您可以将其指定为图像 的 BitMapData.compare( ) 强>
<强>返回强> 对象 - 如果两个BitmapData对象具有相同的尺寸(宽度和高度),则该方法返回一个新的BitmapData对象,该对象具有两个对象之间的差异(请参阅主要讨论)。如果BitmapData对象是等效的,则该方法返回数字0.如果BitmapData对象的宽度不相等,则该方法返回数字-3。如果BitmapData对象的高度不相等,则该方法返回数字-4。