pixlab php
PixLab PHP Library 1.2 Release
Ini adalah Klien pixlab php resmi untuk PixLab Machine Vision API. Klien adalah kelas PHP tunggal yang memungkinkan Anda berinteraksi dengan server API menggunakan metode GET dan POST HTTP.
Untuk daftar lengkap sampel yang menggunakan kelas ini, silakan merujuk ke:
require_once " pixlab.php " ;
# Given a government issued passport document, extract the user face and parse all MRZ fields.
#
# PixLab recommend that you connect your AWS S3 bucket via your dashboard at https://pixlab.io/dashboard
# so that any cropped face or MRZ crop is stored automatically on your S3 bucket rather than the PixLab one.
# This feature should give you full control over your analyzed media files.
#
# https://pixlab.io/cmd?id=docscan for additional information.
/* Passport prototype: Of course, replace with a real government issued passport if you
* want to deal with a real world situation.
*/
$ passport = ' https://i.stack.imgur.com/oJY2K.png ' ;
# Your PixLab key
$ key = ' PIXLAB_API_KEY ' ;
/* Process */
$ pix = new Pixlab ( $ key );
if ( ! $ pix -> get ( ' docscan ' ,[
' img ' => $ passport , /* Passport scanned image */
' type ' => ' passport ' /* Type of document we are going to scan */
]) ){
echo $ pix -> get_error_message (). "n" ;
die;
}
/* Output the scan result */
echo " User Cropped Face: " . $ pix -> json -> face_url . "n" ;
echo " MRZ Cropped Image: " . $ pix -> json -> mrz_img_url . "n" ;
echo " Raw MRZ Text: " . $ pix -> json -> mrz_raw_text . "n" ;
echo " MRZ Fields: n" ;
/* Display all parsed MRZ fields */
echo "t Issuing Country: " . $ pix -> json -> fields -> issuingCountry . "n" ;
echo "t Full Name: " . $ pix -> json -> fields -> fullName . "n" ;
echo "t Document Number: " . $ pix -> json -> fields -> documentNumber . "n" ;
echo "t Check Digit: " . $ pix -> json -> fields -> checkDigit . "n" ;
echo "t Nationality: " . $ pix -> json -> fields -> nationality . "n" ;
echo "t Date Of Birth: " . $ pix -> json -> fields -> dateOfBirth . "n" ;
echo "t Sex: " . $ pix -> json -> fields -> sex . "n" ;
echo "t Date Of Expiry: " . $ pix -> json -> fields -> dateOfExpiry . "n" ;
echo "t Personal Number: " . $ pix -> json -> fields -> personalNumber . "n" ;
echo "t Final Check Digit: " . $ pix -> json -> fields -> finalcheckDigit . "n" ;
require_once " pixlab.php " ;
/*
* Detect all human faces in a given image or video frame via `facedetect` and blur all of them via `mogrify`.
* https://pixlab.io/#/cmd?id=facedetect & https://pixlab.io/#/cmd?id=mogrify for additional information.
*/
# Target Image: Feel free to change to whatever image holding faces you want
$ img = ' http://cf.broadsheet.ie/wp-content/uploads/2015/03/jeremy-clarkson_3090507b.jpg ' ;
$ key = ' My_Pix_Key ' ;
$ pix = new Pixlab ( $ key );
echo " Detecting faces first... n" ;
/* Invoke facedetect first */
if ( ! $ pix -> get ( ' facedetect ' , array ( ' img ' => $ img )) ){
echo $ pix -> get_error_message ();
die;
}
/* Grab the total number of detected faces */
$ faces = $ pix -> json -> faces ;
if ( count ( $ faces ) < 1 ){
echo " No human faces were were detected on this picture n" ;
} else {
echo " Total number of detected faces: " . count ( $ faces ). "n" ;
echo " Censuring faces... n" ;
/* Call mogrify (Only POST) */
if ( ! $ pix -> post ( ' mogrify ' , array ( ' img ' => $ img , ' cord ' => $ faces )) ){
echo $ pix -> get_error_message ();
} else {
echo " Censured Faces: " . $ pix -> json -> link . "n" ;
}
}
/*
* pixlab php Client which is just a single class PHP file without any dependency that you can get from Github
* https://github.com/symisc/pixlab-php
*/
require_once " pixlab.php " ;
# Detect all human faces & extract their landmark regions via facelandmarks & make a small Snapchat filter effect.
# Only three commands are actually needed in order to mimic the Snapchat filters effects:
# face landmarks: https://pixlab.io/#/cmd?id=facelandmarks
# smart resize: https://pixlab.io/#/cmd?id=smartresize
# merge: https://pixlab.io/#/cmd?id=merge
# Optionally: blur, grayscale, oilpaint, etc. for cool background effects.
$ img = ' http://cf.broadsheet.ie/wp-content/uploads/2015/03/jeremy-clarkson_3090507b.jpg ' ;
$ pix = new Pixlab ( ' My_Pix_Key ' );
/* Grab the face landmarks first */
if ( ! $ pix -> get ( ' facelandmarks ' ,[
' img ' => $ img
]) ){
echo $ pix -> get_error_message (). "n" ;
die;
}
$ total = count ( $ pix -> json -> faces ); # Total detected faces
print ( $ total . " faces were detected n" );
$ snap = [];
# Iterate all over the detected faces
foreach ( $ pix -> json -> faces as $ face ){
$ cord = $ face -> rectangle ;
# Show the face coordinates
print ( " Coordinates... n" );
print ( "nt width: " . $ cord -> width . ' height: ' . $ cord -> height . ' x: ' . $ cord -> left . ' y: ' . $ cord -> top );
# Show landmarks:
print ( "n Landmarks... n" );
$ landmarks = $ face -> landmarks ;
print ( "nt Nose: X: " . $ landmarks -> nose -> x . " , Y: " . $ landmarks -> nose -> y );
print ( "nt Bottom Lip: X: " . $ landmarks -> bottom_lip -> x . " , Y: " . $ landmarks -> bottom_lip -> y );
print ( "nt Top Lip: X: " . $ landmarks -> top_lip -> x . " , Y: " . $ landmarks -> top_lip -> y );
print ( "nt Chin: X: " . $ landmarks -> chin -> x . " , Y: " . $ landmarks -> chin -> y );
print ( "nt Bone Center: X: " . $ landmarks -> bone -> center -> x . " , Y: " . $ landmarks -> bone -> center -> y );
print ( "nt Bone Outer Left: X: " . $ landmarks -> bone -> outer_left -> x . " , Y: " . $ landmarks -> bone -> outer_left -> y );
print ( "nt Bone Outer Right: X: " . $ landmarks -> bone -> outer_right -> x . " , Y: " . $ landmarks -> bone -> outer_right -> y );
print ( "nt Bone Center: X: " . $ landmarks -> bone -> center -> x . " , Y: " . $ landmarks -> bone -> center -> y );
print ( "nt Eye Pupil Left: X: " . $ landmarks -> eye -> pupil_left -> x . " , Y: " . $ landmarks -> eye -> pupil_left -> y );
print ( "nt Eye Pupil Right: X: " . $ landmarks -> eye -> pupil_right -> x . " , Y: " . $ landmarks -> eye -> pupil_right -> y );
print ( "nt Eye Left Brown Inner: X: " . $ landmarks -> eye -> left_brow_inner -> x . " , Y: " . $ landmarks -> eye -> left_brow_inner -> y );
print ( "nt Eye Right Brown Inner: X: " . $ landmarks -> eye -> right_brow_inner -> x . " , Y: " . $ landmarks -> eye -> right_brow_inner -> y );
print ( "nt Eye Left Outer: X: " . $ landmarks -> eye -> left_outer -> x . " , Y: " . $ landmarks -> eye -> left_outer -> y );
print ( "nt Eye Right Outer: X: " . $ landmarks -> eye -> right_outer -> x . " , Y: " . $ landmarks -> eye -> right_outer -> y );
# More landmarks on the docs..
# Pick the last face in this loop for the sack of simplicity. Refer to the sample set for a complete example
$ snap = $ face ;
}
# Make a quick Snapchat filter on top of the last detected face
if ( $ total < 1 ){
# No faces were detected
die;
}
# The flower crown to be composited on top of the target face
$ flower = ' http://pixlab.xyz/images/flower_crown.png ' ;
# Resize the flower crown which is quite big right now to exactly the face width using smart resize.
print ( "n Resizing the snap flower crown... n" );
if ( ! $ pix -> get ( ' smartresize ' ,[
' img ' => $ flower ,
' width ' => 20 + $ snap -> rectangle -> width , # Face width
' height ' => 0 # Let Pixlab decide the best height for this picture
]) ){
echo $ pix -> get_error_message (). "n" ;
} else {
$ flower = $ pix -> json -> link ;
}
# Finally, Perform the composite operation
print ( " Composite operation... n" );
if ( ! $ pix -> post ( ' merge ' ,[
' src ' => $ img ,
' cord ' => [
array ( /* Array for each landmarks */
' img ' => $ flower ,
' x ' => $ snap -> landmarks -> bone -> outer_left -> x ,
' y ' => $ snap -> landmarks -> bone -> outer_left -> y /* Adjust for optimal effect */
)
]]) ){
echo $ pix -> get_error_message ();
} else {
# Optionally call blur, oilpaint, grayscale for more stuff..
print ( " Snap Filter Effect: " . $ pix -> json -> link );
}
echo "n" ;
require_once " pixlab.php " ;
# Target Image: Change to any link (Possibly adult) you want or switch to POST if you want to upload your image directly.
# The target API endpoint we'll be using here: nsfw (https://pixlab.io/cmd?id=nsfw).
$ img = ' https://i.redd.it/oetdn9wc13by.jpg ' ;
# Your PixLab key
$ key = ' My_Pixlab_Key ' ;
# Blur an image based on its NSFW score
$ pix = new Pixlab ( $ key );
/* Invoke NSFW */
if ( ! $ pix -> get ( ' nsfw ' , array ( ' img ' => $ img )) ){
echo $ pix -> get_error_message ();
die;
}
/* Grab the NSFW score */
$ score = $ pix -> json -> score ;
if ( $ score < 0.5 ){
echo " No adult content were detected on this picture n" ;
} else {
echo " Censuring NSFW picture... n" ;
/* Call blur with the highest possible radius and sigma */
if ( ! $ pix -> get ( ' blur ' , array ( ' img ' => $ img , ' rad ' => 50 , ' sig ' => 30 )) ){
echo $ pix -> get_error_message ();
} else {
echo " Censured Picture: " . $ pix -> json -> link . "n" ;
}
}
?>
/*
* pixlab php Client which is just a single class PHP file without any dependency that you can get from Github
* https://github.com/symisc/pixlab-php
*/
require_once " pixlab.php " ;
# Given an image with human readable characters. Detect input language & extract text content from there.
# https://pixlab.io/#/cmd?id=ocr for additional information.
/* Target image with human readable text input */
$ img = ' http://quotesten.com/wp-content/uploads/2016/06/Confucius-Quote.jpg ' ;
# Your PixLab key
$ key = ' My_PixLab_Key ' ;
/* Process */
$ pix = new Pixlab ( $ key );
if ( ! $ pix -> get ( ' ocr ' , array ( ' img ' => $ img )) ){
echo $ pix -> get_error_message (). "n" ;
die;
}
echo " Input language: " . $ pix -> json -> lang ;
echo "n Text Output: " . $ pix -> json -> output . "n" ;