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

时间:2018-10-16 10:59:54

标签: r imagemagick purrr

coo_matrix软件包documentation展示了如何对图像对象的向量进行拼接:

magick

这很好。但是,由于将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将不接受此列表。

可复制的示例(这只是一个模拟示例,显然我需要超过3张图片!)

image_mosaic
  

错误:“图像”参数不是魔术图像对象。

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) 不能正常工作。

因此,我需要了解如何以使其成为图像对象的方式取消列出unlist的方式,或者更改我的images_list的方法(不要以为有purrr:map,有吗?)

1 个答案:

答案 0 :(得分:2)

如果我们看一下magick在幕后的作用– https://github.com/ropensci/magick/blob/master/R/base.R#L58-L60 –我们会发现c()实际上只是对image_join()的呼唤,因此您可以只需image_join(images_list)即可获得所需的东西。