Personal who can help to extract something good, I changed the example code to simplify the mapping of the face,
which I intend to perform is a type of facial recognition.....
//Init global variables.
var width = 320;
var height = 240;
var tLast = new Date();
//Called when application is started.
function OnStart()
{
//Fix orientation to landscape since
//most phones cameras work this way.
app.SetOrientation( "Landscape" );
//Stop screen turning off.
app.PreventScreenLock( true );
//Create frame layout that fills the screen.
lay = app.CreateLayout( "Frame", "Horizontal,FillXY" );
//Create camera view control.
//(Reduce to QVGA-widthxheight resolution for performance reasons)
cam = app.CreateCameraView( 1, 1, "QVGA,UseBitmap,NoRotate,Front" );
cam.SetOnReady( cam_OnReady );
lay.AddChild( cam );
//Create an image control over the top of the
//camera view with transparency (alpha).
img = app.CreateImage( null, 1, 1 );
img.SetAlpha( 0.5 );
lay.AddChild( img );
img.SetPaintColor( "#ff0000" );
img.SetPaintStyle( "Line" );
img.SetLineWidth( 2 );
img.SetTextSize( 16 );
img.SetAutoUpdate( false );
//Add main layout to app.
app.AddLayout( lay );
}
//Called when camera is ready.
function cam_OnReady()
{
//Start preview.
cam.StartPreview();
//Start image processing.
ProcessImage();
}
//Extract and process image data.
function ProcessImage()
{
//Get faces list.
var faces = cam.FindFaces( 10 );
//Mark found faces over camera preview.
DrawFaces( faces );
//Call this function again ASAP.
setTimeout( ProcessImage, 0 );
}
//Draw area where face detected.
function DrawFaces( faces )
{
var corners, i, j, len;
//Clear image.
img.Clear();
//Loop through faces list.
for( i=0; i < faces.length; i++ )
{
//Get face info.
var face = faces[i];
//Mark face boundaries.
// img.DrawRectangle( face.midPoint.x/width - face.eyeDistance/width,
// face.midPoint.y/height - face.eyeDistance/height,
//face.midPoint.x/width + face.eyeDistance/width,
//face.midPoint.y/height + face.eyeDistance/height );
//img.SetPaintStyle("Fill"); //Set style of objects drawn to 'Fill'.
img.SetPaintColor("#ff4ee444"); //Set colour of objects drawn to 'Gray'.
//img.DrawCircle(face.midPoint.x/width ,face.midPoint.y/width ,0.05);
//img.DrawCircle(face.midPoint.x/width ,face.midPoint.x/width ,0.05);
img.DrawArc(face.midPoint.x/width ,0.20,face.midPoint.y/height,0.35,0,360);
img.DrawArc(face.midPoint.x/width ,0.20,face.midPoint.x/height,0.35,0,360);
img.DrawImage("Img/arosto.png",face.midPoint.x/width ,face.midPoint.y/height,1,1);
img.DrawLine(face.midPoint.x/width + face.eyeDistance/width, face.midPoint.y/height - face.eyeDistance/height, //cima ^
face.midPoint.x/width - face.eyeDistance/width, face.midPoint.y/height - face.eyeDistance/height);
img.DrawLine(face.midPoint.x/width - face.eyeDistance/width, face.midPoint.y/height + face.eyeDistance/height, //direita >
face.midPoint.x/width - face.eyeDistance/width, face.midPoint.y/height - face.eyeDistance/height);
img.DrawLine(face.midPoint.x/width + face.eyeDistance/width, face.midPoint.y/height + face.eyeDistance/height,
face.midPoint.x/width + face.eyeDistance/width, face.midPoint.y/height - face.eyeDistance/height);//esquerda <
img.DrawLine(face.midPoint.x/width - face.eyeDistance/width, face.midPoint.y/height + face.eyeDistance/height,
face.midPoint.x/width + face.eyeDistance/width, face.midPoint.y/height + face.eyeDistance/height);//baixo v
img.DrawLine(face.midPoint.x/width - face.eyeDistance/width, face.midPoint.y/height - face.eyeDistance/height,
face.midPoint.x/width , face.midPoint.y/height );//diagonal direita alta
img.DrawLine(face.midPoint.x/width + face.eyeDistance/width, face.midPoint.y/height + face.eyeDistance/height,
face.midPoint.x/width , face.midPoint.y/height );//diagonal direita alta
img.DrawLine(face.midPoint.x/width + face.eyeDistance/width, face.midPoint.y/height - face.eyeDistance/height,
face.midPoint.x/width , face.midPoint.y/height );//diagonal esquerda baixa
img.DrawLine(face.midPoint.x/width - face.eyeDistance/width, face.midPoint.y/height + face.eyeDistance/height,
face.midPoint.x/width , face.midPoint.y/height );//diagonal direita baixa
//Draw circle with center at (0.42,0.16) and radius 0.04
//img.DrawCircle(face.midPoint.x/width + face.eyeDistance/width,face.midPoint.y/height - face.eyeDistance/height,0.03); //Center at (0.57,0.16) and radius 0.04.
//Pattern : (x1,y1,x2,y2,StartAngle,EndAngle).
//img.DrawLine(face.midPoint.x/width,
//face.midPoint.y/height,
//face.midPoint.x/width + face.eyeDistance/width,
//face.midPoint.y/height + face.eyeDistance/height);
var a =face.midPoint.x/width;
var b =face.midPoint.y/width;
img.SetPaintColor("#ff444444"); //Set colour of objects drawn to 'Red'.
//Draw an arc.
//Pattern : (x1,y1,x2,y2,StartAngle,EndAngle).
}
//Draw frame rate.
var tNow = new Date();
//face.midPoint.x/width ,0.20,face.midPoint.y/height
img.DrawText( a, 0.03, 0.04 );
img.DrawText( b, 0.03, 0.09 );
tLast = tNow;
//Update image canvas.
img.Update();
}