

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.

# Localisation d'éléments sur une page de document
<a name="text-location"></a>

Les opérations Amazon Textract renvoient l'emplacement et la géométrie des éléments trouvés sur une page de document. [DetectDocumentText](https://docs.aws.amazon.com/textract/latest/APIReference/API_DetectDocumentText.html)et [GetDocumentTextDetection](https://docs.aws.amazon.com/textract/latest/APIReference/API_GetDocumentTextDetection.html)renvoient l'emplacement et la géométrie des lignes et des mots, tandis que l'emplacement [AnalyzeDocument](https://docs.aws.amazon.com/textract/latest/APIReference/API_AnalyzeDocument.html)et [GetDocumentAnalysis](https://docs.aws.amazon.com/textract/latest/APIReference/API_GetDocumentAnalysis.html)la géométrie des paires clé-valeur, des tableaux, des cellules et des éléments de sélection sont renvoyés.

Pour déterminer où se trouve un article sur une page de document, utilisez les informations du cadre de délimitation ([géométrie](https://docs.aws.amazon.com/textract/latest/APIReference/API_Geometry.html)) renvoyées par l'opération Amazon Textract dans [un](https://docs.aws.amazon.com/textract/latest/APIReference/API_Block.html) objet Block. L'`Geometry`objet contient deux types d'informations de localisation et de géométrie pour les éléments détectés :
+ [BoundingBox](https://docs.aws.amazon.com/textract/latest/APIReference/API_BoundingBox.html)Objet aligné sur l'axe qui contient les coordonnées en haut à gauche ainsi que la largeur et la hauteur de l'élément.
+ Objet polygonal qui décrit le contour de l'élément, spécifié sous la forme d'un tableau d'objets [Point](https://docs.aws.amazon.com/textract/latest/APIReference/API_Point.html) contenant les coordonnées `X` (axe horizontal) et `Y` (axe vertical) des pages de document de chaque point.

Le JSON d'un `Block` objet ressemble à ce qui suit. Notez les `Polygon` champs `BoundingBox` et.

```
{
    "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 tracer des cadres autour des objets détectés. Pour un exemple qui utilise des `BoundingBox` `Polygon` informations pour dessiner des cases autour de lignes et de lignes verticales au début et à la fin de chaque mot, voir[Détection du texte d'un document avec Amazon Textract](detecting-document-text.md). L'exemple de sortie est similaire au suivant.

![Formulaire avec des champs pour le nom, l'adresse et la date de naissance affichant les informations personnelles de Jane Doe dont l'adresse est 123 Any Street, Anytown, États-Unis et la date de naissance du 26 décembre 1980.](http://docs.aws.amazon.com/fr_fr/textract/latest/dg/images/janedoe.png)


## Cadre de délimitation
<a name="bounding-box"></a>

Un cadre de délimitation (`BoundingBox`) possède les propriétés suivantes :
+ Hauteur : hauteur du cadre de délimitation sous forme de ratio par rapport à la hauteur totale de la page du document.
+ Gauche : coordonnée X du point supérieur gauche du cadre de délimitation sous forme de ratio par rapport à la largeur totale de la page du document.
+ Haut : coordonnée Y du point supérieur gauche du cadre de délimitation sous forme de ratio par rapport à la hauteur globale de la page du document.
+ Largeur : largeur du cadre de délimitation sous forme de rapport à la largeur totale de la page du document.

Chaque BoundingBox propriété possède une valeur comprise entre 0 et 1. La valeur est un rapport entre la largeur globale de l'image (s'applique à `Left` et`Width`) ou la hauteur (s'applique à `Height` et`Top`). Par exemple, si l'image d'entrée mesure 700 x 200 pixels et que les coordonnées en haut à gauche du cadre de délimitation sont (350,50) pixels, l'API renvoie une `Left` valeur de 0,5 (350/700) et une `Top` valeur de 0,25 (). 50/200 

Le schéma suivant montre l'étendue d'une page de document couverte par chaque BoundingBox propriété.

![Schéma illustrant les propriétés Left, Top, Width et Height définissant un cadre de délimitation sur une page.](http://docs.aws.amazon.com/fr_fr/textract/latest/dg/images/bounding-box.png)


Pour afficher le cadre de sélection à l'emplacement et à la taille corrects, multipliez les BoundingBox valeurs par la largeur ou la hauteur de page du document (en fonction de la valeur souhaitée) pour obtenir les valeurs en pixels. Vous utilisez les valeurs en pixels pour afficher le cadre de délimitation. Par exemple, utilisez une page de document de 608 pixels de largeur x 588 pixels de hauteur et les valeurs de cadre de délimitation 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 autour du texte analysé. Les exemples Java et Python suivants montrent comment afficher un cadre de sélection.

------
#### [ Java ]

```
    public void ShowBoundingBox(int imageHeight, int imageWidth, BoundingBox box, Graphics2D g2d) {

        float left = imageWidth * box.getLeft();
        float top = imageHeight * box.getTop();

        // Display bounding box.
        g2d.setColor(new Color(0, 212, 0));
        g2d.drawRect(Math.round(left / scale), Math.round(top / scale),
                Math.round((imageWidth * box.getWidth()) / scale), Math.round((imageHeight * box.getHeight())) / scale);

    }
```

------
#### [ Python ]

Cet exemple Python prend en compte le résultat `response` renvoyé par l'opération [DetectDocumentText](https://docs.aws.amazon.com/textract/latest/APIReference/API_DetectDocumentText.html)d'API.

```
def process_text_detection(response):

    # Get the text blocks
    blocks = response['Blocks']
    width, height = image.size
    draw = ImageDraw.Draw(image)
    print('Detected Document Text')

    # Create image showing bounding box/polygon the detected lines/text
    for block in blocks:

        draw = ImageDraw.Draw(image)

        if block['BlockType'] == "LINE":
            box=block['Geometry']['BoundingBox']
            left = width * box['Left']
            top = height * box['Top']
            draw.rectangle([left,top, left + (width * box['Width']), top +(height * box['Height'])],outline='black')

    # Display the image
    image.show()

    return len(blocks)
```

------

## Polygone
<a name="polygon"></a>

Le polygone renvoyé par `AnalyzeDocument` est un tableau d'objets [Point](https://docs.aws.amazon.com/textract/latest/APIReference/API_Point.html). Chacune `Point` possède des coordonnées X et Y correspondant à un emplacement spécifique sur la page du document. Tout comme les BoundingBox coordonnées, les coordonnées du polygone sont normalisées en fonction de la largeur et de la hauteur du document et sont comprises entre 0 et 1. 

Vous pouvez utiliser les points du réseau de polygones pour afficher un cadre de délimitation à grain fin autour d'un objet. `Block` Vous calculez la position de chaque point du polygone sur la page du document en utilisant la même technique que celle utilisée pour`BoundingBoxes`. Multipliez la coordonnée X par la largeur de page du document et multipliez la coordonnée Y par la hauteur de page du 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));

    }
```

## Angle de rotation
<a name="rotation"></a>

La dernière partie de l'objet Geometry est l'angle de rotation du texte. L'angle de rotation est un nombre compris entre 0 et 360 qui représente le degré de rotation du texte. 