mapply на вектор изображения магии - PullRequest
1 голос
/ 21 апреля 2019

Я пытаюсь повернуть изображения с magick::image_rotate() для разных углов поворота с mapply и image_rotate не получает правильный ввод

easterEggs <- c(
  'https://cdn.pixabay.com/photo/2017/02/04/20/28/easter-2038263_960_720.png',
  'https://cdn.pixabay.com/photo/2016/12/15/11/41/easter-1908690_960_720.png',
  'https://cdn.pixabay.com/photo/2017/03/28/09/56/easter-egg-2181493_960_720.png',
  'https://cdn.pixabay.com/photo/2019/01/29/13/49/egg-3962420_960_720.png',
  'https://cdn.pixabay.com/photo/2018/02/25/09/44/easter-3180067_960_720.png'
)

egg <- image_read(easterEggs)
eggRotation <- runif(length(egg), -90, 90)

egg <- mapply(image_rotate, egg, eggRotation)

Это приводит к ошибке

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

Ответы [ 2 ]

2 голосов
/ 21 апреля 2019

Я думаю, вам нужно положить яйца в корзину (т.е. объект "list")

library(magick)
egg <- sapply(easterEggs, image_read)
eggRotation <- sapply(egg, function(x) runif(length(x), -90, 90))

и ваш mapply будет работать нормально.

mapply(image_rotate, egg, eggRotation)
1 голос
/ 21 апреля 2019

Попробуйте использовать for петлю для поворота изображений

library(magick)

egg_new <- egg
for (i in seq_along(egg)) {
  egg_new[i] <- image_rotate(egg[i], eggRotation[i])
}
egg_new
...