Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Ubicación del elemento en una página de documento
Las operaciones de Amazon Textract devuelven la ubicación y la geometría de los artículos encontrados en una página de documento.DetectDocumentTextyGetDocumentTextDetectiondevuelve la ubicación y la geometría de líneas y palabras, mientras queAnalyzeDocumentyGetDocumentAnalysisDevuelve la ubicación y la geometría de pares clave-valor, tablas, celdas y elementos de selección.
Para determinar dónde está un elemento en una página de documento, utilice el cuadro delimitador (Geometry) información devuelta por la operación Amazon Textract Texact en unBlockobject. LaGeometry
objeto contiene dos tipos de ubicación e información geométrica para elementos detectados:
-
Un eje alineadoBoundingBoxobjeto que contiene la coordenada superior izquierda y la anchura y la altura del elemento.
-
Objeto poligonal que describe el contorno del elemento, especificado como una matriz dePointobjetos que contienen
X
(eje horizontal) yY
coordenadas de página de documento (eje vertical) de cada punto.
El JSON para unBlock
El objeto tiene un aspecto similar al siguiente. Tenga en cuenta laBoundingBox
yPolygon
.
{ "Geometry": { "BoundingBox": { "Width": 0.053907789289951324, "Top": 0.08913730084896088, "Left": 0.11085548996925354, "Height": 0.013171200640499592 }, "Polygon": [ { "Y": 0.08985357731580734, "X": 0.11085548996925354 }, { "Y": 0.08913730084896088, "X": 0.16447919607162476 }, { "Y": 0.10159222036600113, "X": 0.16476328670978546 }, { "Y": 0.10230850428342819, "X": 0.11113958805799484 } ] }, "Text": "Name:", "TextType": "PRINTED", "BlockType": "WORD", "Confidence": 99.56285858154297, "Id": "c734fca6-c4c4-415c-b6c1-30f7510b72ee" },
Puede utilizar información de geometría para dibujar cuadros delimitadores alrededor de los elementos detectados. Para un ejemplo que utilizaBoundingBox
yPolygon
información para dibujar cuadros alrededor de líneas y líneas verticales al principio y al final de cada palabra, consulteDetección de texto de documento con Amazon Textract. El ejemplo de resultado es similar al siguiente.
Bounding Box
Un cuadro delimitador (BoundingBox
) presenta las siguientes propiedades:
-
Height: la altura del cuadro delimitador expresada proporcionalmente respecto a la altura total de página del documento.
-
Left: coordenada X del punto superior izquierdo del cuadro delimitador expresada proporcionalmente respecto a la anchura total de página del documento.
-
Top: La coordenada Y del punto superior izquierdo del cuadro delimitador expresada proporcionalmente respecto a la altura total de la página del documento.
-
Width: anchura del cuadro delimitador expresada proporcionalmente respecto a la anchura total de página del documento.
Cada propiedad de BoundingBox tiene un valor comprendido entre 0 y 1. El valor es una ratio del ancho total de la imagen (se aplica aLeft
yWidth
) o altura (se aplica aHeight
yTop
). Por ejemplo, si la imagen de entrada es de 700 x 200 píxeles y la coordenada superior izquierda del cuadro delimitador es de (350,50) píxeles, la API devuelve unLeft
valor de 0,5 (350/700) y unTop
valor de 0,25 (50/200).
En el siguiente diagrama se muestra el rango de una página de documento que cubre cada propiedad BoundingBox.
Para mostrar el cuadro delimitador con su ubicación y tamaño correctos, debe multiplicar los valores de BoundingBox por la anchura o altura de la página del documento (según el valor que desee) para obtener los valores en píxeles. Los valores en píxeles se utilizan para mostrar el cuadro delimitador. Un ejemplo es utilizar una página de documento de 608 píxeles de ancho x 588 píxeles de alto y los siguientes valores de cuadro delimitador para el texto analizado:
BoundingBox.Left: 0.3922065 BoundingBox.Top: 0.15567766 BoundingBox.Width: 0.284666 BoundingBox.Height: 0.2930403
La ubicación del cuadro delimitador de texto en píxeles se calcula de la siguiente manera:
Left coordinate = BoundingBox.Left (0.3922065) * document page width (608) =
238
Top coordinate = BoundingBox.Top (0.15567766) * document page height (588) =
91
Bounding box width = BoundingBox.Width (0.284666) * document page width
(608) = 173
Bounding box height = BoundingBox.Height (0.2930403) * document page height
(588) = 172
Puede utilizar estos valores para mostrar un cuadro delimitador enmarcan el texto analizado. En los siguientes ejemplos de Java y Python se muestra cómo mostrar un cuadro delimitador.
Polygon (Polígono)
El polígono devuelto porAnalyzeDocument
es una matriz dePointobjects. CadaPoint
tiene una coordenada X e Y para una ubicación específica de la página del documento. Al igual que las coordenadas de BoundingBox, las coordenadas poligonales se normalizan a la anchura y la altura del documento y están entre 0 y 1.
Puede utilizar puntos de la matriz de polígonos para mostrar un cuadro delimitador de grano fino alrededor de unBlock
object. La posición de cada punto poligonal en la página del documento se calcula utilizando la misma técnica utilizada paraBoundingBoxes
. Multiplique la coordenada X por el ancho de página del documento y multiplique la coordenada Y por el alto de página del documento.
En el ejemplo siguiente se muestra cómo mostrar las líneas verticales de un polígono.
public void ShowPolygonVerticals(int imageHeight, int imageWidth, List <Point> points, Graphics2D g2d) { g2d.setColor(new Color(0, 212, 0)); Object[] parry = points.toArray(); g2d.setStroke(new BasicStroke(2)); g2d.drawLine(Math.round(((Point) parry[0]).getX() * imageWidth), Math.round(((Point) parry[0]).getY() * imageHeight), Math.round(((Point) parry[3]).getX() * imageWidth), Math.round(((Point) parry[3]).getY() * imageHeight)); g2d.setColor(new Color(255, 0, 0)); g2d.drawLine(Math.round(((Point) parry[1]).getX() * imageWidth), Math.round(((Point) parry[1]).getY() * imageHeight), Math.round(((Point) parry[2]).getX() * imageWidth), Math.round(((Point) parry[2]).getY() * imageHeight)); }