首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >关于动态变量数的image_append

关于动态变量数的image_append
EN

Stack Overflow用户
提问于 2020-04-13 20:28:44
回答 1查看 258关注 0票数 0

我有一个图像目录,我想动态地组合3-10个图像。它将在任何地方从3-10张图片.我的想法是创建n个变量,然后将这些n个变量传递给image_append。有没有办法把我的image1,image2,image3的名单.去image_append

代码语言:javascript
运行
复制
library(magick)
these=list.files('../Desktop/',pattern = '.tif') ##list of images, could be 3-10
for (h in 1:3){
assign(paste("image", h, sep = ""), image_read(these[h]) %>%
         image_annotate(.,strsplit(these[h],'_')[[1]][4],color = 'white',size=30))
}
image_append(c(image1,image2,image3)) ##Works, but there will be an unknown number of *image* vars created

combine_images = function(...){z=image_append(c(...));return(z)} ##Function that can combine a dynamic number, but passing ls(pattern='image') does not work
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-13 21:50:33

与其将图像存储在全局环境中,不如将其存储在列表中。这样,您就可以不用循环,只需lapply您的呼叫:

代码语言:javascript
运行
复制
library(magick)

these <- list.files('../Pictures/', pattern = '.tif', full.names = TRUE) 

pictures <- image_append(do.call("c", lapply(these, function(h){
 image_annotate(image_read(h), strsplit(h, '[.]')[[1]][1], color = 'white', size = 30)
 })))

现在,在我的例子中,我得到了以下结果:

代码语言:javascript
运行
复制
pictures

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61196196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档