比较两个图像并检查相等性

apa*_*k61 5 flash image-processing actionscript-3

你知道有关在as3/flash中比较图像的任何来源或信息吗?

我想比较两个图像并检查图像是否相同.

查看此示例:http: //imageshack.us/photo/my-images/825/imagecompare.jpg/

有线索吗?先感谢您!

lox*_*xxy 3

除了重复的答案之外,

我相信你也可以使用BitmapData.compare()

从链接中获取的示例,请考虑以下两个 BitmapData 对象:

 var bmd1:BitmapData = new BitmapData(50, 50, true, 0xFFFF8800);
 var bmd2:BitmapData = new BitmapData(50, 50, true, 0xCCCC6600);
 var diffBmpData:BitmapData = bmd1.compare(bmd2) as BitmapData;
 trace ("0x" + diffBmpData.getPixel(0,0).toString(16); // 0x332200
Run Code Online (Sandbox Code Playgroud)

代码示例(百分比差异):

不管结果有多正确,这就是我按照百分比酝酿的结果:

var bmd1:BitmapData = new BitmapData(225, 225);
bmd1.draw(mc1);
var bmd2:BitmapData = new BitmapData(225, 225);
bmd2.draw(mc2);

var diffBmpData:BitmapData = bmd1.compare(bmd2) as BitmapData;

var diff:int = 0;
var total:int = 225 * 225;

for(var i=0; i<225; i++)
    for(var j=0; j<225; j++)
        diff += (diffBmpData.getPixel(i,j) != 0)? 1 : 0; 

info.text = Math.round((diff / total * 100)).toString();
Run Code Online (Sandbox Code Playgroud)

其中:info是文本框、mc1mc2是舞台上的两个影片剪辑。

我认为你可以通过比较各个值(即像素有多少不同)而不是布尔值像素相似匹配来使其更好。


结果:(圆形图像周围的空白将被包括在内)

在此输入图像描述