in vision/snippets/document_text/doctext.py [0:0]
def get_document_bounds(image_file, feature):
"""Finds the document bounds given an image and feature type.
Args:
image_file: path to the image file.
feature: feature type to detect.
Returns:
List of coordinates for the corresponding feature type.
"""
client = vision.ImageAnnotatorClient()
bounds = []
with open(image_file, "rb") as image_file:
content = image_file.read()
image = vision.Image(content=content)
response = client.document_text_detection(image=image)
document = response.full_text_annotation
# Collect specified feature bounds by enumerating all document features
for page in document.pages:
for block in page.blocks:
for paragraph in block.paragraphs:
for word in paragraph.words:
for symbol in word.symbols:
if feature == FeatureType.SYMBOL:
bounds.append(symbol.bounding_box)
if feature == FeatureType.WORD:
bounds.append(word.bounding_box)
if feature == FeatureType.PARA:
bounds.append(paragraph.bounding_box)
if feature == FeatureType.BLOCK:
bounds.append(block.bounding_box)
# The list `bounds` contains the coordinates of the bounding boxes.
return bounds