//---GIRDS var midX = wid/2; var mystatus = ''; var myct=0; var mylen=10; var tracker = new clm.tracker(); //---VIDEO function videoSetupEx(){ fsize=Math.floor(wid/20); context2.font = 'bold ' + fsize + 'px serif'; context2.textAlign = 'left'; context2.fillStyle = 'yellow'; videoStatus('init face recognition'); tracker.init(); videoStatus('status:OK'); tracker.start(myvideo); } function videoLoopEx() { //context2.clearRect(0,0,wid, hei); context2.beginPath() ; context2.drawImage(myvideo, 0, 0, wid, hei); context2.moveTo(midX,0); context2.lineTo(midX, hei); context2.stroke(); var pos = tracker.getCurrentPosition(); if(pos.length>0){ context2.strokeStyle = 'red'; var facex = Math.round(pos[62][0])*fUpdatedSizeH; var facey = Math.round(pos[62][1])*fUpdatedSizeV; var facewid = Math.round(pos[13][0] - pos[1][0]) * fUpdatedSizeH; facex = facex - facewid/2; facey = facey - facewid/2; context2.strokeRect(facex, facey, facewid, facewid); nowstatus=''; if((facex+facewid)midX){ nowstatus='left'; } if(nowstatus == 'right' && (mystatus == 'left' || mystatus == '')){ mystatus=nowstatus; myct=myct+0.5; } if(nowstatus == 'left' && (mystatus == 'right' || mystatus == '')){ mystatus=nowstatus; myct=myct+0.5; } } context2.fillStyle = 'yellow'; if(myct >= mylen){ context2.fillText('Congrats!',20,20); }else{ context2.fillText('Webcam Yoga Counter:' + myct + '/' + mylen + '\r\n' + mystatus,20,20); } mycontext.drawImage(canvas2,0,0,srcwid,srchei); }