2012-10-10 88 views
0

我使用this library在用户相机的实时反馈上进行人脸检测,我试图完成的是在用户头部放置一个项目覆盖。演示版带来的例子是跟随用户的傻眼镜。我知道谷歌可以在谷歌环聊上做这件事,而不是用脸来追踪用户的头像,因为Google可以在视频聊天时放置各种项目。有没有任何教程,我可以继续使用CCV的图书馆,并扩展它的这个功能?CCV人脸检测Javascript库检测

+2

您使用的是哪个图书馆?......这就是说,仅仅因为Google可以做点什么并不一定意味着我们的凡人也可以。 :) –

+0

大声笑,我跟着这个教程http://wesbos.com/html5-video-face-detection-canvas-javascript/,它使用刘刘的文件。 – shayward

回答

0

带我了解一下,但我找到了问题。

在计算位置的函数[函数“drawToCanvas”]我不得不乱搞宽度和高度计算。我的输出如下。

var video = App.video, 
      ctx = App.context, 
      backCtx = App.backContext, 
      m = 5, 
      w = 20, 
      i , 
      comp; 

     ctx.drawImage(video, 0, 0, App.canvas.width, App.canvas.height); 

     backCtx.drawImage(video, 0, 0, App.backCanvas.width, App.backCanvas.height); 

     comp = ccv.detect_objects(App.ccv = App.ccv || { 
      canvas: App.backCanvas, 
      cascade: cascade, 
      interval: 4, 
      min_neighbors: 1 
     }); 

     if (comp.length) { 
      App.comp = comp; 
     } 

     for (var i = 0; i < App.comp.length; i++){ 
      //ctx.drawImage(App.glasses, App.comp[i].x, App.comp[i].y+(App.comp[i].height*.7), App.comp[i].width, (App.comp[i].height/4)); 
      ctx.drawImage(App.glasses, (App.comp[i].x - w/.7) * m, (App.comp[i].y - w/.5) * m, (App.comp[i].width + w) * m, (App.comp[i].height + w) * m); 

是这样它可以把你正在使用的用户头顶上什么都像。

1

看起来像一个真正的基本解决方案将只是重新创建glasses.png文件有点大,并以矩形的形式...可能不完全是你以后,但这似乎是一个简单的解决方案给我。

+0

嗯,生病尝试。不知道为什么我没有想到这个谢谢。生病报告回来。 – shayward

+0

经过一段时间后,它似乎是检测眼睛和嘴巴。当图像重新适合脸部大小时,它会自动将图像放置在我的眼睛上,即使我将图像放大后仍然会缩小以适合脸部。 – shayward