r - 将图像对象列表传递给 R magick 函数而不是向量

标签 r imagemagick purrr

magickdocumentation展示了如何制作图像对象矢量的马赛克:

bigdata <- image_read('https://jeroen.github.io/images/bigdata.jpg')
frink <- image_read("https://jeroen.github.io/images/frink.png")
logo <- image_read("https://jeroen.github.io/images/Rlogo.png")
img <- c(bigdata, logo, frink)
image_mosaic(img)

这很好用。但是,由于将 purrr::map 与某个采用图像文件名并返回图像的函数一起使用,我得到了图像对象的 list,而不是 < strong>vector,image_mosaic 将不接受此列表。

可重现的例子(这只是一个模拟例子,显然我需要这个超过 3 张图片!):

read_image_wrapper <- function(url) image_read(url)
urls <- c("https://jeroen.github.io/images/bigdata.jpg", "https://jeroen.github.io/images/frink.png", "https://jeroen.github.io/images/Rlogo.png")
images_list <- purrr::map(urls, read_image_wrapper)
image_mosaic(images_list)

Error: The 'image' argument is not a magick image object.

unlisting 将不起作用。

所以我要么需要了解如何取消列出 images_list 以使其成为图像对象,要么改变我的 purrr:map 方法(不要假设有一个 purrr:map_img,是吗?)

最佳答案

如果我们看一下 magick 在幕后做了什么 — https://github.com/ropensci/magick/blob/master/R/base.R#L58-L60 — 我们将看到 c() 实际上只是对 image_join() 的调用,因此您只需执行 image_join(images_list) 即可获得你需要什么。

关于r - 将图像对象列表传递给 R magick 函数而不是向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52833932/

相关文章:

r - 在R?中绘制数据集的CDF?

android - 我们可以在 android 中使用 imagemagick 库吗?

r - R 中 'Everything that exists is an object' 的真正含义是什么?

python - 算法 3D点云体积计算

R 在 for 循环中使用 tryCatch 将带有错误值的行添加到输出

ruby - RMagick:获取字形指标

image-processing - 如何检测视频文件是否是纯静态的?

r - 逐行计算列表列中的实例数

r - 不能在嵌套的 data.frame 中子集列

r - 使用 rvest 和 purrr::map_df 构建数据框:处理多元素标签