Как убрать фон изображений с пакета magick?
Можно ли удалить фон изображений с помощью magick
пакет?
Я знаю, как использовать обнаружение краев с Gimp/Inkscape, чтобы вырезать силуэты; Тем не менее, я хочу автоматизировать процесс для большой серии изображений с R
,
Моя конечная цель - использовать ggimage
пакет для построения этих изображений как x,y
координаты, но фон этих изображений в настоящее время перекрывает сюжет (собака по сравнению с fink)
library("ggplot2")
library("ggimage")
set.seed(2017-02-21)
d <- data.frame(x = rnorm(10),
y = rnorm(10),
image = sample(c("http://www.supercoloring.com/sites/default/files/silhouettes/2015/05/cairn-terrier-black-silhouette.svg", "https://jeroenooms.github.io/images/frink.png"),
size=10, replace = TRUE)
)
ggplot(d, aes(x, y)) + geom_image(aes(image=image))
Можно обрезать края изображения, используя магию изображения image_trim()
img <- image_read_svg("http://www.supercoloring.com/sites/default/files/silhouettes/2015/05/cairn-terrier-black-silhouette.svg")
image_trim(img)
но это не совсем то, что я хотел бы.
Есть идеи?
1 ответ
image_transparent()
функция делает это, например:
logo <- image_read("logo:")
image_transparent(logo, 'white')
Белые части изображения будут сделаны прозрачными, чего должно быть достаточно для простого изображения в вашем примере.
См . мой ответ в https://yulab-smu.github.io/treedata-book/image-processing-using-magick-package.html.
Вы можете передать функцию обработки изображений, предоставленную magick
пакет в geom_image
через image_fun
параметр.