cam faces

81 views
Skip to first unread message

Ev. rodrigo dos santos

unread,
Jan 20, 2017, 6:43:33 PM1/20/17
to DroidScript
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();
}

Ev. rodrigo dos santos

unread,
Jan 20, 2017, 7:12:45 PM1/20/17
to DroidScript
I wanted to know why the drawe image ("Img / pic.png"); Does not work in this example I wanted to replace the circle with an image

Steve Garman

unread,
Jan 20, 2017, 7:18:35 PM1/20/17
to DroidScript
Reply all
Reply to author
Forward
Message has been deleted
0 new messages