使用 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"