def detect_crop_hints(path, frame_id, user_id): print "Detects crop hints in an image." + path client = vision.ImageAnnotatorClient() # [START migration_crop_hints] with io.open(path, 'rb') as image_file: content = image_file.read() image = types.Image(content=content) # worth looking at this bullshit constant right here crop_hints_params = types.CropHintsParams(aspect_ratios=[1.77]) image_context = types.ImageContext(crop_hints_params=crop_hints_params) response = client.crop_hints(image=image, image_context=image_context) hints = response.crop_hints_annotation.crop_hints cropHintsList = [] count = 0 for n, hint in enumerate(hints): print('\nCrop Hint: {}'.format(n)) crop_to_hint(path, hint.bounding_poly.vertices, count) count = count + 1 vertices = ([ '({},{})'.format(vertex.x, vertex.y) for vertex in hint.bounding_poly.vertices ]) print('bounds: {}'.format(','.join(vertices))) vertexes = [] for vertex in hint.bounding_poly.vertices: vertexes.append({"x": vertex.x, "y": vertex.y}) cropHintsList.append(vertexes) cropHintsJSON = {"crophints": cropHintsList} spitJSONAPIResulttoMDB(cropHintsJSON, "crophints_ocr_google", frame_id, user_id)
def get_crop_hint(path): """Detect crop hints on a single image and return the first result.""" client = vision.ImageAnnotatorClient() with io.open(path, 'rb') as image_file: content = image_file.read() image = types.Image(content=content) crop_hints_params = types.CropHintsParams() image_context = types.ImageContext(crop_hints_params=crop_hints_params) response = client.crop_hints(image=image, image_context=image_context) hints = response.crop_hints_annotation.crop_hints vertices = hints[0].bounding_poly.vertices return vertices
def get_crop_hints(path, ratios): """Detect crop hints on a single image and return the first result.""" client = vision.ImageAnnotatorClient() with io.open(path, 'rb') as image_file: content = image_file.read() image = types.Image(content=content) crop_hints_params = types.CropHintsParams(aspect_ratios=ratios) image_context = types.ImageContext(crop_hints_params=crop_hints_params) response = client.crop_hints(image=image, image_context=image_context) hints = response.crop_hints_annotation.crop_hints # Get bounds for the first crop hint using an aspect ratio of 1.77. vertices = (a.bounding_poly.vertices for a in hints) return vertices
def detect_crop_hints_uri(uri): """Detects crop hints in the file located in Google Cloud Storage.""" client = vision.ImageAnnotatorClient() image = types.Image() image.source.image_uri = uri crop_hints_params = types.CropHintsParams(aspect_ratios=[1.77]) image_context = types.ImageContext(crop_hints_params=crop_hints_params) response = client.crop_hints(image=image, image_context=image_context) hints = response.crop_hints_annotation.crop_hints for n, hint in enumerate(hints): print('\nCrop Hint: {}'.format(n)) vertices = (['({},{})'.format(vertex.x, vertex.y) for vertex in hint.bounding_poly.vertices]) print('bounds: {}'.format(','.join(vertices)))
def detect_crop_hints(latest_file, image_file): #Detect crop hints on a single image and return the first result. client = vision.ImageAnnotatorClient() with io.open(image_file, 'rb') as image_file: content = image_file.read() image = types.Image(content=content) crop_hints_params = types.CropHintsParams(aspect_ratios=[1.77]) image_context = types.ImageContext(crop_hints_params=crop_hints_params) response = client.crop_hints(image=image, image_context=image_context) hints = response.crop_hints_annotation.crop_hints # Get bounds for the first crop hint using an aspect ratio of 1.77. vertices = hints[0].bounding_poly.vertices return vertices
def detect_crop_hints_uri(self, uri): """ Description: Detects crop hints in an image. Args: uri: url to an image on the Internet Returns: crop hints json object """ image = types.Image() image.source.image_uri = uri crop_hints_params = types.CropHintsParams(aspect_ratios=[1.77]) image_context = types.ImageContext(crop_hints_params=crop_hints_params) response = self.client.crop_hints(image=image, image_context=image_context) return response
def get_crop_hint(self, path): """Detect crop hints on a single image and return the first result.""" client = vision.ImageAnnotatorClient() with io.open(path, 'rb') as image_file: content = image_file.read() image = types.Image(content=content) crop_hints_params = types.CropHintsParams(aspect_ratios=[0.3]) image_context = types.ImageContext(crop_hints_params=crop_hints_params) response = client.crop_hints(image=image, image_context=image_context) hints = response.crop_hints_annotation.crop_hints try: vertices = hints[0].bounding_poly.vertices except: raise AssertionError("the image doesn't exist") return vertices
def get_crop_hint(image, aspect_ratios=''): """Detect crop hints on a single image and return the first result.""" try: aspect_ratios = [float(x) for x in aspect_ratios.split(',')] crop_hints_params = types.CropHintsParams(aspect_ratios=aspect_ratios) image_context = types.ImageContext(crop_hints_params=crop_hints_params) response = client.crop_hints(image=image_properties.my_image(image), image_context=image_context) except ValueError: response = client.crop_hints(image=image_properties.my_image(image), ) hints = response.crop_hints_annotation.crop_hints # Get bounds for the first crop hint using an aspect ratio of 1.77. return { str(ratio): hint.bounding_poly.vertices for ratio, hint in zip(aspect_ratios, hints) }
def detect_crop_hints(self, path): """ Description: Detects crop hints in an image. Args: path: path to a local image Returns: crop hints json object """ with io.open(path, 'rb') as image_file: content = image_file.read() image = types.Image(content=content) crop_hints_params = types.CropHintsParams(aspect_ratios=[1.77]) image_context = types.ImageContext(crop_hints_params=crop_hints_params) response = self.client.crop_hints(image=image, image_context=image_context) return response
def _detect_cropping(client, image): """ Get cropping hints for 1:1 ratio from vision api. :param client: :param image: :return: """ crop_hints_params = types.CropHintsParams(aspect_ratios=[1.0]) image_context = types.ImageContext(crop_hints_params=crop_hints_params) response = client.crop_hints(image=image, image_context=image_context) hints = response.crop_hints_annotation.crop_hints vertices = [] for v in hints[0].bounding_poly.vertices: vertices.append({ "x": v.x, "y": v.y, }) return vertices
def detect_crop_hints(path): """Detects crop hints in an image.""" client = vision.ImageAnnotatorClient() # [START migration_crop_hints] with io.open(path, 'rb') as image_file: content = image_file.read() image = types.Image(content=content) crop_hints_params = types.CropHintsParams(aspect_ratios=[1.77]) image_context = types.ImageContext(crop_hints_params=crop_hints_params) response = client.crop_hints(image=image, image_context=image_context) hints = response.crop_hints_annotation.crop_hints for n, hint in enumerate(hints): print('\nCrop Hint: {}'.format(n)) vertices = (['({},{})'.format(vertex.x, vertex.y) for vertex in hint.bounding_poly.vertices]) print('bounds: {}'.format(','.join(vertices)))