Передайте список объектов изображения в магическую функцию R вместо вектора - PullRequest
0 голосов
/ 16 октября 2018

Пакет 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 с некоторой функцией, которая принимает имя файла изображения и возвращает изображение, я получаю список объектов изображения, а не вектор и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)

Ошибка: Аргумент 'image' не является магическим объектом изображения.

И unlist ing не будет работать.

Так что мне нужно понять, как отменить вывод images_listтаким образом, который сделает его объектом изображения или изменит мой purrr:map подход (не думайте, что есть purrr:map_img, не так ли?)

1 Ответ

0 голосов
/ 16 октября 2018

Если мы посмотрим на то, что magick делает под капотом - https://github.com/ropensci/magick/blob/master/R/base.R#L58-L60 - мы увидим, что c() на самом деле является просто вызовом image_join(), так что вы можете просто сделать image_join(images_list)чтобы получить то, что вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...