Сравнение двух BitmapData в ActionScript 3 - PullRequest
0 голосов
/ 04 февраля 2012

Я хотел бы знать, могу ли я сравнить два 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
}

1 Ответ

3 голосов
/ 04 февраля 2012

Не в процентах, но должен возвращать новый объект BitMapData, который вы можете назначить в качестве изображения. BitMapData.compare ()

Возвращает Object - Если два объекта BitmapData имеют одинаковые размеры (ширину и высоту), метод возвращаетновый объект BitmapData, который имеет разницу между двумя объектами (см. основное обсуждение).Если объекты BitmapData эквивалентны, метод возвращает число 0. Если ширины объектов BitmapData не равны, метод возвращает число -3.Если высоты объектов BitmapData не равны, метод возвращает число -4.

...