Advertisement
Guest User

Rekognition Filter Low Quality Image Sample

a guest
Feb 24th, 2020
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.72 KB | None | 0 0
  1. import boto3
  2.  
  3. from io import BytesIO
  4. from PIL import Image
  5.  
  6. if __name__== "__main__":
  7.     session = boto3.Session(region_name="ap-southeast-1")
  8.    
  9.     rekognition = session.client('rekognition')
  10.     s3 = session.client('s3')
  11.    
  12.     # Detect faces to filter image
  13.     response = rekognition.detect_faces(
  14.         Image={
  15.             'S3Object': {
  16.                 'Bucket': 'julo-test-bucket',
  17.                 'Name': '2.jpeg',
  18.             },
  19.         },
  20.     )
  21.    
  22.     # Sample simple heuristic rule
  23.     if response['FaceDetails'][0]['Quality']['Brightness'] > 30 and \
  24.         response['FaceDetails'][0]['Quality']['Sharpness'] > 30 and \
  25.         response['FaceDetails'][0]['Quality']['Brightness'] < 70 and \
  26.         response['FaceDetails'][0]['Quality']['Sharpness'] < 70:
  27.         # Index filtered face
  28.        
  29.         print("Test")
  30.    
  31.         file_byte_string = s3.get_object(Bucket='ulo-test-bucket', Key='2.jpeg')['Body'].read()
  32.        
  33.         img = Image.open(BytesIO(file_byte_string))
  34.         img_width, img_height = img.size
  35.         left = response['FaceDetails'][0]['BoundingBox']['Left'] * img_width
  36.         top = response['FaceDetails'][0]['BoundingBox']['Top'] * img_height
  37.         width = response['FaceDetails'][0]['BoundingBox']['Width'] * img_width
  38.         height = response['FaceDetails'][0]['BoundingBox']['Height'] * img_height
  39.         cropped = img.crop((left , top , (left + width), (top + height)))
  40.         imgByteArr = BytesIO()
  41.         cropped.save(imgByteArr, format=img.format)
  42.         imgByteArr = imgByteArr.getvalue()
  43.         response = rekognition.index_faces(
  44.             CollectionId='julo',
  45.             Image={
  46.                 'Bytes': imgByteArr,
  47.             }
  48.         )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement