如何使用 magick 包删除图像背景?
How to remove background of images with the magick package?
是否可以使用 magick
包去除图像的背景?
我知道如何使用 Gimp/Inkscape 的边缘检测来裁剪轮廓;但是,我希望使用 R
.
自动处理大量图像
我的最终目标是使用 ggimage
包将这些图像绘制为 x,y
坐标,但这些图像的背景目前与绘图重叠(狗与芬克相比)
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()
trim 图像的边缘
img <- image_read_svg("http://www.supercoloring.com/sites/default/files/silhouettes/2015/05/cairn-terrier-black-silhouette.svg")
image_trim(img)
但这并不是我想要的。
有什么想法吗?
image_transparent()
函数执行此操作,例如:
logo <- image_read("logo:")
image_transparent(logo, 'white')
图像的白色部分将变为透明,这对于您示例中的简单图像应该足够了。
可以通过image_fun
参数将magick
包提供的图像处理函数传递给geom_image
。
是否可以使用 magick
包去除图像的背景?
我知道如何使用 Gimp/Inkscape 的边缘检测来裁剪轮廓;但是,我希望使用 R
.
我的最终目标是使用 ggimage
包将这些图像绘制为 x,y
坐标,但这些图像的背景目前与绘图重叠(狗与芬克相比)
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)
但这并不是我想要的。
有什么想法吗?
image_transparent()
函数执行此操作,例如:
logo <- image_read("logo:")
image_transparent(logo, 'white')
图像的白色部分将变为透明,这对于您示例中的简单图像应该足够了。
可以通过image_fun
参数将magick
包提供的图像处理函数传递给geom_image
。