如何在成对的浮点数之间插入逗号?
How can I insert commas between pairs of floating point numbers?
我想做什么
我想绘制边界框,指示从 REST Google Vision API 下载的 JSON 对象在本地拍摄的照片中识别出的对象。我想使用如下所示的 ImageMagick 调用绘制边界框。
convert output.jpg -draw 'stroke red fill none polygon 0,78.7 87,78 87,151 0,151' outputbox.png
我是怎么做到的
我在 Mac OS 10.15.4 上使用终端(bash,不是 zsh,我将它从 zsh 切换回 bash。)
我收到 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(如下所示)来解析响应,我想我可能没有使用最佳查询来实现我想要的。
输入
jq '.responses[0][][0].boundingPoly.normalizedVertices[] | if .x==null then 0 else .x*320 end, .y*240' img.json
输出
0 78.70536 87.020112 78.70536 87.020112 151.16473680000001 0 151.16473680000001
为了将它们作为绘图坐标输入到图像 magick convert 中,我想输出一个字符串,其中每两个数字用“,”连接成对,然后用空格分隔这些对,如下所示。
0,78.70536 87.020112,78.70536 87.020112,151.16473680000001 0,151.16473680000001
我已经在 sed 和 ssed 中尝试过正则表达式(使用 perl 的 -r 选项),但我只是在转动我的轮子。
这是我关于 Whosebug 的第一个问题,如果我犯了任何 n00b 错误,我深表歉意。
谢谢!
首先,用逗号连接 x-y 对,然后用空格连接结果字符串。例如(为清楚起见,省略了不相关的部分):
.normalizedVertices
| map("\(if has("x") then .x * 320 else 0 end),\(.y * 240)")
| join(" ")
我想做什么
我想绘制边界框,指示从 REST Google Vision API 下载的 JSON 对象在本地拍摄的照片中识别出的对象。我想使用如下所示的 ImageMagick 调用绘制边界框。
convert output.jpg -draw 'stroke red fill none polygon 0,78.7 87,78 87,151 0,151' outputbox.png
我是怎么做到的
我在 Mac OS 10.15.4 上使用终端(bash,不是 zsh,我将它从 zsh 切换回 bash。)
我收到 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(如下所示)来解析响应,我想我可能没有使用最佳查询来实现我想要的。
输入
jq '.responses[0][][0].boundingPoly.normalizedVertices[] | if .x==null then 0 else .x*320 end, .y*240' img.json
输出
0 78.70536 87.020112 78.70536 87.020112 151.16473680000001 0 151.16473680000001
为了将它们作为绘图坐标输入到图像 magick convert 中,我想输出一个字符串,其中每两个数字用“,”连接成对,然后用空格分隔这些对,如下所示。
0,78.70536 87.020112,78.70536 87.020112,151.16473680000001 0,151.16473680000001
我已经在 sed 和 ssed 中尝试过正则表达式(使用 perl 的 -r 选项),但我只是在转动我的轮子。
这是我关于 Whosebug 的第一个问题,如果我犯了任何 n00b 错误,我深表歉意。
谢谢!
首先,用逗号连接 x-y 对,然后用空格连接结果字符串。例如(为清楚起见,省略了不相关的部分):
.normalizedVertices
| map("\(if has("x") then .x * 320 else 0 end),\(.y * 240)")
| join(" ")