magick
包 documentation展示了如何制作图像对象矢量的马赛克:
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.
unlist
ing 将不起作用。
所以我要么需要了解如何取消列出 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/