使用purr和RoogleVision批量调用Google Vision的方式有多整洁?

问题描述 投票:0回答:1

我有一个包含图片的目录,我想为每个图像查询Google Vision API,并将汇总输出存储在一个tibble中。

我尝试了一个简单的解决方案:如果getGoogleVisionResponse("file1.png")有效,那么我需要的是:

files <- dir("image-path")
map(files, getGoogleVisionResponse)

只得到:Error in file(con, "rb") : cannot open the connection

我找到了这个答案,其中涉及从头开始编写一个函数,但这看起来不整洁而且矫枉过正,不是吗? Create variable and dataset in a loop? (R)

我还发现this pull request旨在解决这个问题,但它没有合并。

r purrr google-vision
1个回答
2
投票

dir没有返回完整路径,所以如果你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"
© www.soinside.com 2019 - 2024. All rights reserved.