FLASH人脸识别算法

这个今天也是偶然在网上看到,不过对于人脸识别精确算法确实比较复杂涉及到人脸特征点提取和生物统计学原理的东西,不做太多讨论,只是谈谈今天我在网上看到的两个算法。第一个是被称为木刻算法,他主要用于提取人脸轮廓。该算法的前提是认为一般因为人体摄影的缘故人脸的周边会存在阴影,这样就为我们提取轮廓提供了一个区分的依据。

24位位图在存储的时候每个点会存为一个RGB三个分量的24位颜色值,在这个颜色值中选择三个分量(RGB)的最大和最小值取平均,或者三个分量取平均,当中间值大于我们预先定义的一个阀值,则让颜色值为0xffffff(即白色),否则让颜色值为0(即黑色),然后建立一个3×3矩阵去检测黑点当矩阵中心点周围存在2个以上白色点的时候则认为中心点即是边缘点。在不求多精确的情况下我感觉这个算法也挺合理。

第二个算法,因为仅有代码,我还没有完全明白他所使用的原理,这里仅贴出他的AS代码:

import flash.display.BitmapData;
var myBitmapData:BitmapData = new BitmapData(40, 29.2);
var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth());
mc.attachBitmap(myBitmapData,this.getNextHighestDepth());
CAM.CA.attachVideo(Camera.get());
stop();
mc._x = 0;
mc._y = 50;
i = 0;
i2 = 0;
x = 40;
y = 29.2;
abc = 0;
M = false;
alc = 0;
ct = 0;
onEnterFrame = function () {
ct++;
myBitmapData.draw(CAM);
abc++;
if (i<(y-1)) {
for (a=0; a<292; a++) {
i2 += 2;
if (i2/x == int(i2/x)) {
i++;
i2 = 0;
}
alc += myBitmapData.getPixel(i2, i);
apc = int(alc/aac);
RGB = "0x"+(myBitmapData.getPixel(i2, i)).toString(16);
if (myBitmapData.getPixel(i2, i)*(2.6-apc/10000000)<16800000 && myBitmapData.getPixel(i2, i)*(2.7-apc/10000000)>10543804) {
if (myBitmapData.getPixel(i2, i)*(2.6-apc/10000000)>13200000 || myBitmapData.getPixel(i2, i)*(2.7-apc/10000000)<10401713) {
if (myBitmapData.getPixel(i2, i)*(2.7-apc/10000000)>apc) {
cb = 0;
for (a1=0; a1<i; a1++) {
if (myBitmapData.getPixel(i2, i-a1)<500) {
cb++;
}
}
if (cb>=1) {
M = true;
RGB = "0x"+(50000).toString(16);
} else {
M = false;
RGB = "0x"+(5000).toString(16);
}
}
} else {
M = false;
}
} else {
M = false;
}
if (M == true) {
_root.lineStyle(2,RGB,100);
_root.moveTo(i2+100,i+50);
_root.lineTo(i2+101,i+50);
_root.lineStyle(2,RGB,100);
_root.moveTo(i2+200,i+50);
_root.lineTo(i2+201,i+50);
} else {
_root.lineStyle(2,RGB,100);
_root.moveTo(i2+100,i+50);
_root.lineTo(i2+101,i+50);
}
}
} else {
i2 = 0;
i = 0;
}
if (ct/20 == int(ct/20)) {
_root.clear();
}
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值