

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Artikelspeicherort auf einer Dokumentseite
<a name="text-location"></a>

Amazon Textract Textract-Operationen geben den Speicherort und die Geometrie der Elemente zurück, die auf einer Dokumentseite gefunden wurden.[DetectDocumentText](API_DetectDocumentText.md)und[GetDocumentTextDetection](API_GetDocumentTextDetection.md)geben Sie die Position und Geometrie für Linien und Wörter zurück, während[AnalyzeDocument](API_AnalyzeDocument.md)und[GetDocumentAnalysis](API_GetDocumentAnalysis.md)Gibt die Position und Geometrie von Schlüssel-Wert-Paaren, Tabellen, Zellen und Selektionselementen zurück.

Um zu ermitteln, wo sich ein Element auf einer Dokumentseite befindet, verwenden Sie den Begrenzungsrahmen ([Geometry](API_Geometry.md)) Informationen, die von der Amazon Textract Textract-Operation in einem[Block](API_Block.md)-Objekt. Die`Geometry`Das -Objekt enthält zwei Arten von Standorten und geometrischen Informationen für erkannte Elemente:
+ Eine Achse ausgerichtet[BoundingBox](API_BoundingBox.md)Das -Objekt, das die linke obere Koordinate sowie die Breite und Höhe des Elements enthält.
+ Ein Polygonobjekt, das den Umriss des Elements beschreibt, angegeben als Array von[Point](API_Point.md)Objekte, die enthalten`X`(horizontale Achse) und`Y`(vertikale Achse) Dokumentseitenkoordinaten jedes Punktes.

Der JSON für einen`Block`Das -Objekt sieht folgendermaßen aus. Beachten Sie das`BoundingBox`und`Polygon`unterscheiden sich nicht.

```
{
    "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"
},
```

Sie können Geometrieinformationen verwenden, um Begrenzungsrahmen um erkannte Elemente zu zeichnen. Für ein Beispiel, das`BoundingBox`und`Polygon`Informationen zum Zeichnen von Feldern um Linien und vertikale Linien am Anfang und Ende jedes Wortes finden Sie unter[Erkennen von Dokumenttext mit Amazon Textract](detecting-document-text.md)aus. Die Beispielausgabe ähnelt der folgenden.

![](http://docs.aws.amazon.com/de_de/textract/latest/dg/images/janedoe.png)


## Bounding Box
<a name="bounding-box"></a>

Ein Begrenzungsrahmen (`BoundingBox`) hat folgende Eigenschaften:
+ Höhe — Die Höhe des Begrenzungsrahmens als Verhältnis der Gesamtseitenhöhe des Dokuments.
+ Links — Die X-Koordinate des oberen linken Punktes des Begrenzungsrahmens als Verhältnis der Gesamtseitenbreite des Dokuments.
+ Oben — Die Y-Koordinate des oberen linken Punktes des Begrenzungsrahmens als Verhältnis der Gesamtseitenhöhe des Dokuments.
+ Breite — Die Breite des Begrenzungsrahmens als Verhältnis der Gesamtseitenbreite des Dokuments.

Jede BoundingBox-Eigenschaft hat einen Wert zwischen 0 und 1. Der Wert ist ein Verhältnis der gesamten Bildbreite (gilt für`Left`und`Width`) oder Höhe (gilt für`Height`und`Top`) enthalten. Beispiel: Bei einem Eingangsbild mit 700 x 200 Pixeln und einer linken oberen Koordinate des Begrenzungsrahmens (350,50) Pixeln gibt die API eine`Left`Wert von 0,5 (350/700) und a`Top`Wert von 0,25 (50/200). 

Das folgende Diagramm zeigt den Bereich einer Dokumentseite, die jede BoundingBox-Eigenschaft abdeckt.

![](http://docs.aws.amazon.com/de_de/textract/latest/dg/images/bounding-box.png)


Um den Begrenzungsrahmen mit der richtigen Position und Größe anzuzeigen, müssen Sie die BoundingBox-Werte mit der Breite oder Höhe der Dokumentseite (abhängig vom gewünschten Wert) multiplizieren, um die Pixelwerte zu erhalten. Sie verwenden die Pixelwerte, um den Begrenzungsrahmen anzuzeigen. Ein Beispiel ist die Verwendung einer Dokumentseite mit 608 Pixel Breite x 588 Pixel Höhe und die folgenden Begrenzungsrahmenwerte für analysierten Text: 

```
BoundingBox.Left: 0.3922065
BoundingBox.Top: 0.15567766
BoundingBox.Width: 0.284666
BoundingBox.Height: 0.2930403
```

Die Position des Text-Begrenzungsrahmens in Pixeln wird wie folgt berechnet: 

`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`

Mit diesen Werten können Sie einen Begrenzungsrahmen um den analysierten Text herum anzeigen. Die folgenden Beispiele für Java und Python zeigen, wie ein Begrenzungsrahmen angezeigt wird.

------
#### [ 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 ]

In diesem Python-Beispiel wird das`response`den von zurückgegebenen[DetectDocumentText](API_DetectDocumentText.md)API-Operation.

```
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)
```

------

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

Das Polygon wurde zurückgegeben von`AnalyzeDocument`ist eine Reihe von[Point](API_Point.md)Objekte. EACH`Point`hat eine X- und Y-Koordinate für einen bestimmten Speicherort auf der Dokumentseite. Wie die BoundingBox-Koordinaten werden die Polygonkoordinaten auf die Breite und Höhe des Dokuments normalisiert und liegen zwischen 0 und 1. 

Sie können Punkte im Polygon-Array verwenden, um einen feinkörnigen Begrenzungsrahmen um ein`Block`-Objekt. Sie berechnen die Position jedes Polygonpunkts auf der Dokumentseite mit der gleichen Technik, die für`BoundingBoxes`aus. Multiplizieren Sie die X-Koordinate mit der Seitenbreite des Dokuments und multiplizieren Sie die Y-Koordinate mit der Seitenhöhe des Dokuments.

Das folgende Beispiel zeigt, wie die vertikalen Linien eines Polygons angezeigt werden.

```
    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));

    }
```