这个教程来自Y叔的听说你用R把证件照给一键换底了


首先准备一张证件照(打码照),比如蓝底图 1,png或jpg格式的都可以,用magick这个包的image_read()函数把它读进来,用ggplotify转换成ggplot图片

library(magick)
x<-image_read('你的照片.jpg')
ggplotify::as.ggplot(x)
蓝底图

Figure 1: 蓝底图

用image_fill()函数直接就可以处理图片,选一个自己想要换的颜色,比如白色,代码一输,as.ggplot一转,就成了白底图 2

y<-image_fill(x,'white',fuzz = 20)
ggplotify::as.ggplot(y)
白底图

Figure 2: 白底图

再试试别的颜色,拼一下图,见图 3所示。

p1<- ggplotify::as.ggplot(image_fill(x,'red',fuzz = 20))
p2<- ggplotify::as.ggplot(image_fill(x,'brown',fuzz = 20))
p3<- ggplotify::as.ggplot(image_fill(x,'navyblue',fuzz = 20))
p4<- ggplotify::as.ggplot(image_fill(x,'steelblue',fuzz = 20))
p5<- ggplotify::as.ggplot(image_fill(x,'green',fuzz = 20))
p6<- ggplotify::as.ggplot(image_fill(x,'white',fuzz = 20))
p7<- ggplotify::as.ggplot(x)
p8<- ggplotify::as.ggplot(image_fill(x,'yellow',fuzz = 20))
p9<- ggplotify::as.ggplot(image_fill(x,'black',fuzz = 20))
cowplot::plot_grid(p1,p2,p3,p4,p5,p6,p7,p8,p9,ncol = 3,labels = "AUTO")
组合图

Figure 3: 组合图


最后用ggsave保存一下,还可以自己设置照片的长度和宽度,以及dpi

比如,保存为宽2.5cm,高3.5cm、分辨率为150的jpg照片

ggsave("pic.jpg",width=2.5,heigh=3.5,unit=c('cm'),dpi=150)

想试一下吗?

作者简介

欧阳松石河子大学医学院第一附属医院泌尿外科主治医师、讲师、医学博士。 擅长泌尿及男性生殖系统常见疾病的诊疗,对男性生殖医学疾病具有较深研究熟悉各种泌尿男科手术及腔镜微创诊疗技术, 同时擅长R语言在生物信息方面的研究。

欧阳松 (2021). 使用R语言给照片换底色. 欧阳松的博客. https://swcyo.rbind.io/course/change-photo-color/

BibTeX citation

@misc{
  title = "使用R语言给照片换底色",
  author = "欧阳松",
  year = "2021",
  journal = "欧阳松的博客",
  note = "https://swcyo.rbind.io/course/change-photo-color/"
}
.. ... ...
本站总访问量次; 本站访客数人次; 本文总阅读量次;