1

是否可以使用包删除图像的背景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)

但这并不是我想要的。

有任何想法吗?

4

2 回答 2

6

image_transparent()函数执行此操作,例如:

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

图像的白色部分将变为透明,这对于您示例中的简单图像应该足够了。

于 2018-05-23T04:58:24.643 回答
-3

在https://yulab-smu.github.io/treedata-book/image-processing-using-magick-package.html#example-1-remove-background-of-images中查看我的答案。

您可以通过参数将magick包提供的图像处理功能传递给。geom_imageimage_fun

于 2019-05-08T07:32:28.370 回答