使用 purr 和 RoogleVision 批量调用 Google Vision 的整洁方法?
Tidy way to batch calls to Google Vision using purr and RoogleVision?
我有一个包含图像的目录,我想为每个图像查询 Google Vision API 并将聚合输出存储在一个小标题中。
我尝试了一个看似简单的解决方案:如果 getGoogleVisionResponse("file1.png")
有效,那么我只需要:
files <- dir("image-path")
map(files, getGoogleVisionResponse)
只为得到:
Error in file(con, "rb") : cannot open the connection
我找到了这个答案,其中涉及从头开始编写一个函数,但这似乎不整洁且矫枉过正,不是吗?
我还发现了 this pull request 旨在解决这个问题,但它没有被合并。
dir
不是 return 完整路径,因此如果您 dir
获取文件夹的内容,您将只能获取文件名:
> dir("mydir")
[1] "a" "b" "c" "d" "e" "f" "g"
将它们传递给任何需要路径的函数都会失败。
相反,如果您使用 full.names=TRUE
,您将获得文件的完整路径:
> dir("mydir",full.names=TRUE)
[1] "mydir/a" "mydir/b" "mydir/c" "mydir/d" "mydir/e" "mydir/f" "mydir/g"
我有一个包含图像的目录,我想为每个图像查询 Google Vision API 并将聚合输出存储在一个小标题中。
我尝试了一个看似简单的解决方案:如果 getGoogleVisionResponse("file1.png")
有效,那么我只需要:
files <- dir("image-path")
map(files, getGoogleVisionResponse)
只为得到:
Error in file(con, "rb") : cannot open the connection
我找到了这个答案,其中涉及从头开始编写一个函数,但这似乎不整洁且矫枉过正,不是吗?
我还发现了 this pull request 旨在解决这个问题,但它没有被合并。
dir
不是 return 完整路径,因此如果您 dir
获取文件夹的内容,您将只能获取文件名:
> dir("mydir")
[1] "a" "b" "c" "d" "e" "f" "g"
将它们传递给任何需要路径的函数都会失败。
相反,如果您使用 full.names=TRUE
,您将获得文件的完整路径:
> dir("mydir",full.names=TRUE)
[1] "mydir/a" "mydir/b" "mydir/c" "mydir/d" "mydir/e" "mydir/f" "mydir/g"