Как убрать фон изображений с пакета magick? - PullRequest
0 голосов
/ 23 мая 2018

Можно ли удалить фон изображений с помощью пакета 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))

output

Можно обрезать края изображения, используя магию изображенияimage_trim()

img <- image_read_svg("http://www.supercoloring.com/sites/default/files/silhouettes/2015/05/cairn-terrier-black-silhouette.svg")
image_trim(img)

но это не совсем то, что я хотел бы.

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 08 мая 2019

см. Мой ответ в https://yulab -smu.github.io / treedata-book / обработка изображений с использованием magick-package.html # example-1-remove-background-of-images .

Вы можете передать функцию обработки изображений, предоставляемую пакетом magick, в geom_image через параметр image_fun.

0 голосов
/ 23 мая 2018

Функция image_transparent() делает это, например:

logo <- image_read("logo:")
image_transparent(logo, 'white')

Белые части изображения будут сделаны прозрачными, чего должно быть достаточно для простого изображения в вашем примере.

...