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 - 在 ggplot2 中制作的 stat_summary_hex 图之间的操作

linux - 显示来自 bash 脚本的图像通知

R:如何将递归或迭代函数/映射输出输出到向量中?

r - 如何在 R Markdown 中左对齐 latex 方程?

ruby-on-rails - 使用 RMagick 将 PDF 文件转换为 PNG 并保持高质量的最佳方法是什么?

linux - 找到 body 的肩颈点

r - 使用map和fcase更新嵌套列表的元素

使用 purrr 在一个数据集上运行多个 chisq 测试

r - 如何使用 purrr 或 tidyr 将数据帧列表转换为列表数据帧?