Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Emplacement de l'article sur une page de document
Les opérations Amazon Textract renvoient l'emplacement et la géométrie des éléments présents sur une page de document.DetectDocumentTextetGetDocumentTextDetectionrenvoie l'emplacement et la géométrie des lignes et des mots, tandis queAnalyzeDocumentetGetDocumentAnalysisrenvoie l'emplacement et la géométrie des paires clé-valeur, des tableaux, des cellules et des éléments de sélection.
Pour déterminer où se trouve un élément sur une page de document, utilisez le cadre de délimitation (Geometry) informations renvoyées par l'opération Amazon Textract dans unBlockobjet. LeGeometry
Objets contient deux types d'informations d'emplacement et de géométrie pour les éléments détectés :
-
Un axe alignéBoundingBoxObjets contenant la coordonnée supérieure gauche ainsi que la largeur et la hauteur de l'élément.
-
Objet polygone qui décrit le contour de l'élément, spécifié sous la forme d'un tableau dePointobjets contenant
X
(axe horizontal) etY
(axe vertical) les coordonnées de page de document de chaque point.
Le JSON pour unBlock
Objets ressemble à ce qui suit. Notez leBoundingBox
etPolygon
.
{ "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" },
Vous pouvez utiliser les informations de géométrie pour dessiner des zones de sélection autour des éléments détectés. Pour un exemple qui utiliseBoundingBox
etPolygon
informations permettant de dessiner des cases autour des lignes et des lignes verticales au début et à la fin de chaque mot, voirDétection du texte de document avec Amazon Textract. L'exemple de sortie est similaire à ce qui suit.
Bounding Box
Un cadre de délimitation (BoundingBox
) possède les propriétés suivantes :
-
Height — Hauteur du cadre de délimitation sous forme de ratio de la hauteur globale de la page du document.
-
Left — Coordonnée X du point supérieur gauche du cadre de délimitation sous forme de ratio de la largeur globale de la page du document.
-
Top — Coordonnée Y du point supérieur gauche du cadre de délimitation sous forme de ratio de la hauteur globale de la page du document.
-
Width — Largeur du cadre de délimitation sous forme de ratio de la largeur globale de la page du document.
Chaque propriété BoundingBox est définie sur une valeur comprise entre 0 et 1. La valeur est un ratio de la largeur d'image globale (s'applique àLeft
etWidth
) ou hauteur (s'applique àHeight
etTop
). Par exemple, si l'image d'entrée a une résolution de 700 x 200 pixels, et que la coordonnée supérieure gauche du cadre de délimitation est de (350,50) pixels, l'API renvoie unLeft
valeur de 0,5 (350/700) et unTop
valeur de 0,25 (50/200).
Le schéma suivant illustre la plage d'une page de document couverte par chaque propriété BoundingBox.
Pour afficher le cadre de délimitation avec l'emplacement et la taille appropriés, vous devez multiplier les valeurs de BoundingBox par la largeur ou la hauteur de la page du document (selon la valeur que vous souhaitez) pour obtenir les valeurs en pixels. Vous utilisez les valeurs en pixels pour afficher le cadre de délimitation. Un exemple consiste à utiliser une page de document de 608 pixels de largeur x 588 pixels de hauteur, et les valeurs de cadre de sélection suivantes pour le texte analysé :
BoundingBox.Left: 0.3922065 BoundingBox.Top: 0.15567766 BoundingBox.Width: 0.284666 BoundingBox.Height: 0.2930403
L'emplacement du cadre de délimitation du texte en pixels est calculé comme suit :
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
Vous utilisez ces valeurs pour afficher un cadre de délimitation autour du texte analysé. Les exemples Java et Python suivants montrent comment afficher un cadre de délimitation.
Polygone
Le polygone renvoyé parAnalyzeDocument
est un tableau dePointobjets. EACHPoint
possède une coordonnée X et Y pour un emplacement spécifique sur la page de document. Comme les coordonnées BoundingBox, les coordonnées surfaciques sont normalisées à la largeur et à la hauteur du document, et se situent entre 0 et 1.
Vous pouvez utiliser des points dans le tableau de polygones pour afficher un cadre de sélection à grain fin autour d'unBlock
objet. Vous calculez la position de chaque point surfacique sur la page de document à l'aide de la même technique utilisée pourBoundingBoxes
. Multipliez la coordonnée X par la largeur de la page de document et multipliez la coordonnée Y par la hauteur de la page de document.
L'exemple suivant montre comment afficher les lignes verticales d'un polygone.
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)); }