从图像中翻出圆圈,然后放在第二张图像上

问题描述 投票:0回答:1
我有两个图像,我想切一个圆圈,然后将该图像放在另一个图像上。但是,我很难实现这一目标。在这里,两个输入图像和所需的输出:

输入图像1:

Input image 1 输入图像2: Input image 2 所需的输出: output image 我的尝试是:

library(magick) library(dplyr) p1 <- image_read("https://i.sstatic.net/uLypl.jpg") p2 <- image_read("https://i.sstatic.net/bkd1M.jpg") # Inspect # p1 |> image_scale("20%") # p2 |> image_scale("20%") ii <- magick::image_info(p1) factx <- 5.48 facty <- 3.95 im1 <- image_crop(p2, geometry=paste0(ii$width/factx, "x", ii$height/facty, "+0+0"), gravity="center") # Inspect # im1 |> image_scale("20%") fig <- image_draw(image_blank(ii$width/factx, ii$width/factx)) symbols(ii$width/factx/2, ii$width/factx/2, circles=(ii$width/factx/2), bg='black', inches=FALSE, add=TRUE) dev.off() im2 <- image_composite(im1, fig, operator='minus')# # image_background(im2, 'white') |> image_scale("20%") im3 <- image_background(im2, 'white') # Inspect image_composite(p1, im3, gravity="center")|> image_scale("20%")

nove,这导致不需要STH。关键不是蓝色,而是黑色,圆圈周围似乎有一个正方形:

thanks提供任何帮助!the not desired output

below r代码将产生您的期望,而少于操作。

library(magick) library(dplyr) p1 <- image_read("https://i.sstatic.net/uLypl.jpg") p2 <- image_read("https://i.sstatic.net/bkd1M.jpg") ii <- magick::image_info(p1) factx <- 5.48 facty <- 3.95 fig <- image_draw(image_blank(ii$width/factx, ii$width/factx, color = "none")) symbols(ii$width/factx/2, ii$width/factx/2, circles=(ii$width/factx/2), bg='blue', inches=FALSE, add=TRUE) dev.off() image_composite(p1, fig, gravity="center")|> image_scale("20%")

r magick
1个回答
5
投票
image_blank()

方法中设置。在

color = "none"
中,应将参数设置为:
symbols()

.

然后您可以直接复合P1和图。我的rstudio的结果在下面:

    
	

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.