Đọc văn bản trong hình ảnh bằng Google Cloud Vision API

Lại Đình Cường

Tài liệu thiết kế website

Đoạn code ví dụ đọc tất cả văn bản trong hình. Với Google Cloud Vision API, bạn có thể upload hình ảnh lên WordPress, sau đó lấy tất cả các văn bản có trong ảnh cùng tọa độ.

global $pagenow;

if ( 'index.php' == $pagenow ) {
    require_once dirname( __FILE__ ) . '/admin-online-tools.php';

    require_once WP_CONTENT_DIR . '/google-cloud-vision/autoload.php';
    putenv( 'GOOGLE_APPLICATION_CREDENTIALS=' . WP_CONTENT_DIR . '/google-cloud-vision/sb-wp-dev-50ee8302e2f9.json' );

    $imageAnnotator = new Google\Cloud\Vision\V1\ImageAnnotatorClient();
    $imageData      = file_get_contents( get_attached_file( 160 ) );

    $response    = $imageAnnotator->textDetection( $imageData );
    $annotations = $response->getTextAnnotations();
    CAD_DEBUG( $annotations );
}

 

Đoạn code chuyển hình ảnh thành văn bản này sẽ lấy thông tin các văn bản có trong hình ảnh với ID là 160. Bên dưới là kết quả debug trả về khi thực thi code trong trang index.php admin WordPress:

[25-Nov-2024 05:38:14 UTC] Google\Protobuf\Internal\RepeatedField Object
(
    [0] => Array
        (
            [locale] => vi
            [description] => Nuôi thỏ
Chim bồ câu
            [boundingPoly] => Array
                (
                    [vertices] => Array
                        (
                            [0] => Array
                                (
                                    [x] => 35
                                    [y] => 251
                                )

                            [1] => Array
                                (
                                    [x] => 1656
                                    [y] => 251
                                )

                            [2] => Array
                                (
                                    [x] => 1656
                                    [y] => 486
                                )

                            [3] => Array
                                (
                                    [x] => 35
                                    [y] => 486
                                )

                        )

                )

        )

    [1] => Array
        (
            [description] => Nuôi
            [boundingPoly] => Array
                (
                    [vertices] => Array
                        (
                            [0] => Array
                                (
                                    [x] => 36
                                    [y] => 251
                                )

                            [1] => Array
                                (
                                    [x] => 415
                                    [y] => 253
                                )

                            [2] => Array
                                (
                                    [x] => 414
                                    [y] => 407
                                )

                            [3] => Array
                                (
                                    [x] => 35
                                    [y] => 405
                                )

                        )

                )

        )

    [2] => Array
        (
            [description] => thỏ
            [boundingPoly] => Array
                (
                    [vertices] => Array
                        (
                            [0] => Array
                                (
                                    [x] => 463
                                    [y] => 254
                                )

                            [1] => Array
                                (
                                    [x] => 728
                                    [y] => 255
                                )

                            [2] => Array
                                (
                                    [x] => 727
                                    [y] => 408
                                )

                            [3] => Array
                                (
                                    [x] => 462
                                    [y] => 407
                                )

                        )

                )

        )

    [3] => Array
        (
            [description] => Chim
            [boundingPoly] => Array
                (
                    [vertices] => Array
                        (
                            [0] => Array
                                (
                                    [x] => 1105
                                    [y] => 394
                                )

                            [1] => Array
                                (
                                    [x] => 1260
                                    [y] => 394
                                )

                            [2] => Array
                                (
                                    [x] => 1260
                                    [y] => 486
                                )

                            [3] => Array
                                (
                                    [x] => 1105
                                    [y] => 486
                                )

                        )

                )

        )

    [4] => Array
        (
            [description] => bồ
            [boundingPoly] => Array
                (
                    [vertices] => Array
                        (
                            [0] => Array
                                (
                                    [x] => 1352
                                    [y] => 394
                                )

                            [1] => Array
                                (
                                    [x] => 1474
                                    [y] => 394
                                )

                            [2] => Array
                                (
                                    [x] => 1474
                                    [y] => 486
                                )

                            [3] => Array
                                (
                                    [x] => 1352
                                    [y] => 486
                                )

                        )

                )

        )

    [5] => Array
        (
            [description] => câu
            [boundingPoly] => Array
                (
                    [vertices] => Array
                        (
                            [0] => Array
                                (
                                    [x] => 1498
                                    [y] => 394
                                )

                            [1] => Array
                                (
                                    [x] => 1656
                                    [y] => 394
                                )

                            [2] => Array
                                (
                                    [x] => 1656
                                    [y] => 486
                                )

                            [3] => Array
                                (
                                    [x] => 1498
                                    [y] => 486
                                )

                        )

                )

        )

)

 

0 0 đánh giá
Đánh giá bài viết
Theo dõi
Thông báo của
guest
0 Góp ý
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất