

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Lokasi Item pada Halaman Dokumen
<a name="text-location"></a>

Operasi Amazon Textract Texact mengembalikan lokasi dan geometri item yang ditemukan di halaman dokumen.[DetectDocumentText](API_DetectDocumentText.md)dan[GetDocumentTextDetection](API_GetDocumentTextDetection.md)mengembalikan lokasi dan geometri untuk garis dan kata-kata, sementara[AnalyzeDocument](API_AnalyzeDocument.md)dan[GetDocumentAnalysis](API_GetDocumentAnalysis.md)mengembalikan lokasi dan geometri pasangan kunci-nilai, tabel, sel, dan elemen seleksi.

Untuk menentukan di mana item berada di halaman dokumen, gunakan kotak pembatas ([Geometry](API_Geometry.md)) informasi yang dikembalikan oleh operasi Amazon Textract Texact dalam[Block](API_Block.md)objek. Parameter`Geometry`objek berisi dua jenis lokasi dan informasi geometris untuk item terdeteksi:
+ Sumbu sejajar[BoundingBox](API_BoundingBox.md)objek yang berisi koordinat kiri atas dan lebar dan tinggi item.
+ Sebuah objek poligon yang menggambarkan garis besar item, ditentukan sebagai array[Point](API_Point.md)benda-benda yang mengandung`X`(sumbu horizontal) dan`Y`(sumbu vertikal) koordinat halaman dokumen setiap titik.

JSON untuk`Block`terlihat seperti berikut ini. Catatan`BoundingBox`dan`Polygon`bidang.

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

Anda dapat menggunakan informasi geometri untuk menggambar kotak pembatas di sekitar item yang terdeteksi. Untuk contoh yang menggunakan`BoundingBox`dan`Polygon`informasi untuk menggambar kotak di sekitar garis dan garis vertikal pada awal dan akhir setiap kata, lihat[Mendeteksi Teks Dokumen dengan Amazon Textract](detecting-document-text.md). Output contoh ini mirip dengan yang berikut ini.

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


## Kotak Pembatas
<a name="bounding-box"></a>

Sebuah kotak pembatas (`BoundingBox`) memiliki sifat sebagai berikut:
+ Tinggi — Tinggi kotak pembatas sebagai rasio tinggi halaman dokumen secara keseluruhan.
+ Kiri — Koordinat X titik kiri atas kotak pembatas sebagai rasio lebar halaman dokumen secara keseluruhan.
+ Atas — Koordinat Y dari titik kiri atas kotak pembatas sebagai rasio tinggi halaman dokumen secara keseluruhan.
+ Lebar — Lebar kotak pembatas sebagai rasio lebar halaman dokumen secara keseluruhan.

Setiap properti BoundingBox memiliki nilai antara 0 dan 1. Nilai adalah rasio lebar citra secara keseluruhan (berlaku untuk`Left`dan`Width`) atau tinggi (berlaku untuk`Height`dan`Top`). Misalnya, jika citra input berukuran 700 x 200 piksel, dan koordinat kiri atas kotak batas adalah (350,50) piksel, maka API mengembalikan a`Left`nilai 0,5 (350/700) dan`Top`nilai 0,25 (50/200). 

Diagram berikut menunjukkan kisaran halaman dokumen yang mencakup setiap properti BoundingBox.

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


Untuk menampilkan kotak pembatas dengan lokasi dan ukuran yang benar, Anda harus mengalikan nilai-nilai BoundingBox dengan lebar halaman dokumen atau tinggi (tergantung pada nilai yang Anda inginkan) untuk mendapatkan nilai-nilai piksel. Anda menggunakan nilai-nilai piksel untuk menampilkan kotak pembatas. Contohnya adalah menggunakan halaman dokumen dengan lebar 608 piksel x tinggi 588 piksel, dan nilai kotak pembatas berikut untuk teks yang dianalisis: 

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

Lokasi kotak pembatas teks dalam piksel dihitung sebagai berikut: 

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

Anda menggunakan nilai-nilai ini untuk menampilkan kotak pembatas di sekitar teks yang dianalisis. Contoh Java dan Python berikut menunjukkan bagaimana menampilkan kotak pembatas.

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

Contoh Python ini mengambil di`response`dikembalikan oleh[DetectDocumentText](API_DetectDocumentText.md)Operasi 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)
```

------

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

Poligon yang dikembalikan oleh`AnalyzeDocument`adalah array[Point](API_Point.md)objek. Masing-masing`Point`memiliki koordinat X dan Y untuk lokasi tertentu pada halaman dokumen. Seperti koordinat BoundingBox, koordinat poligon dinormalisasi dengan lebar dan tinggi dokumen, dan antara 0 dan 1. 

Anda dapat menggunakan poin dalam array poligon untuk menampilkan kotak pembatas butir halus di sekitar`Block`objek. Anda menghitung posisi setiap titik poligon pada halaman dokumen dengan menggunakan teknik yang sama digunakan untuk`BoundingBoxes`. Kalikan koordinat X dengan lebar halaman dokumen, dan kalikan koordinat Y dengan tinggi halaman dokumen.

Contoh berikut menunjukkan cara menampilkan garis vertikal poligon.

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

    }
```