Что я пытаюсь сделать
Я хочу нарисовать ограничивающие рамки, указывающие объекты, распознанные на локально снятой фотографии из JSON объекта, загруженного из REST Google Vision API. Я хочу нарисовать ограничивающие рамки с помощью вызова ImageMagick, как показано ниже.
convert output.jpg -draw 'stroke red fill none polygon 0,78.7 87,78 87,151 0,151' outputbox.png
Как я пытаюсь это сделать
Я использую терминал на Ma c OS 10.15. 4 (bash, а не zsh, я переключил его обратно на bash с zsh.)
Я получаю от Google ответ JSON, как показано ниже.
{
"responses": [
{
"localizedObjectAnnotations": [
{
"mid": "/m/0jbk",
"name": "Animal",
"score": 0.776703,
"boundingPoly": {
"normalizedVertices": [
{
"y": 0.327939
},
{
"x": 0.27193785,
"y": 0.327939
},
{
"x": 0.27193785,
"y": 0.62985307
},
{
"y": 0.62985307
}
]
}
},
Я использовал jq (как показано ниже) для анализа ответа, и я думаю, что, вероятно, я не использую оптимальный запрос для достижения того, чего я хочу.
INPUT
jq '.responses[0][][0].boundingPoly.normalizedVertices[] | if .x==null then 0 else .x*320 end, .y*240' img.json
OUTPUT
0 78.70536 87.020112 78.70536 87.020112 151.16473680000001 0 151.16473680000001
Чтобы ввести их в магию преобразования изображения в качестве координат рисования, я хочу вывести строку, в которой каждые два числа объединяются в пару с помощью «,», а затем разделяются эти пары с пробелами, как показано ниже.
0,78.70536 87.020112,78.70536 87.020112,151.16473680000001 0,151.16473680000001
Я пробовал регулярные выражения в sed и ssed (с опцией -r для perl), но я просто вращаю свои колеса.
Это мой первый вопрос по stackoverflow, поэтому извиняюсь за ошибки n00b.
Спасибо!