понедельник, 10 апреля 2023 г.

image to text

Задача: вытащить последний скрин мака и дернуть из него текст (ака юзер прислал какой то длинный хеш скрином а не текстом и влом перебивать)

Ньюансы: мак хранит фотки на рабочем столе и где это изменить я не нашел плюсом текст с пробелами формата Снимок экрана 2023-04-11 в 05.54.28.png

скрипт генерации строки (найти последний файл на рабочем столе так как скриншот - это последнее что ты туда положил)

 cat ./scripts/imgtotext

#!/bin/bash

a=`ls -tp ./Desktop/ | grep -v /$ | head -1|  awk {'print $5'}`

day=`ls -tp ./Desktop/ | grep -v /$ | head -1|  awk {'print $3'}`

b="./Desktop/Снимок\ экрана\ $day\ в\ "

c=$b$a 

echo "vision_text_detection $c | grep text"


алиас и функция 

teminalk0@teminalk0-osx ~ % cat ./.zshrc

alias itt="./scripts/imgtotext"

vision_text_detection() {

    if [[ $2 ]]; then MIME_TYPE=$2 ; else MIME_TYPE=image; fi

    curl -H "Authorization: Bearer `yc iam create-token`" \

    "https://vision.api.cloud.yandex.net/vision/v1/batchAnalyze" \

    -d @<(cat << EOF

{

    "folderId": "`yc config get folder-id`",

    "analyze_specs": [{

        "content": "`base64 -i $1`",

        "features": [{

            "type": "TEXT_DETECTION",

            "text_detection_config": {

                "language_codes": ["*"]

            }

        }],

        "mime_type": "$MIME_TYPE"

    }]

}

EOF

)

}


на выходе команды itt будет готовая строка, повторный вод в терминал даст на выхлопе текст с картинки 

вариант улучшить - переписав всю основную часть функции в скрипт