【问题标题】:Is there an R function to extract images based on a unique date and time stamp?是否有基于唯一日期和时间戳提取图像的 R 函数?
【发布时间】:2019-05-30 15:54:43
【问题描述】:

我有一组来自相机陷阱的照片,其中包含多个具有相同日期和时间戳的图像。我需要为集合中的每个时间戳提取一张照片。我需要每张只有一张带有该日期和时间戳的照片的照片。然后对于任何多个日期和时间戳,我必须始终只拍摄第二张照片。例如。一张照片,X,时间戳 13:22:42,我想要照片 X;三张照片,a、b 和 c,时间戳为 13:22:43,我想要 b。七张照片,1、2、3、4、5、6、7,时间戳为13:22:44,我要2张。

我对 R 完全陌生,但我觉得它听起来像是它可以做的事情!我试过谷歌搜索选项,但运气不佳。

我希望我可以重命名所有我想轻松复制并粘贴到新相册中的照片,或者最好让 R 将它们提取到一个新文件夹中。这可能吗?

【问题讨论】:

  • R如何从照片中提取时间戳?是文件名吗?
  • 如果时间戳在图像名称中,请提供该名称格式的示例。如果您尝试提取系统时间戳(即文件创建时间),这是重要的信息。

标签: r macos filter photo extraction


【解决方案1】:

如果您尝试使用系统“创建时间”时间戳,这是一种方法。首先,我们得到一个文件名列表。然后我们使用file.info 来获取“创建时间”。然后我们按时间戳分组,并使用row_number 创建分组ID。然后我们过滤到第二张图片id == 2max(id) >= 2,否则如果只有一张图片我们使用id == 1。然后我们可以创建一个新文件夹并将选定的图像复制到那里。

library(tidyverse)    

setwd(choose.dir())

# select the folder with your images in it

files <- list.files()

keep <- files %>% file.info() %>% 
  select(ctime) %>% 
  rownames_to_column("file") %>%
  group_by(ctime) %>% 
  mutate(id = row_number()) %>% 
  filter(id == min(max(id),2)) %>% 
  pull(file)

# at this point `keep` is a list of file names meeting the specified criteria

dir.create("Keep")

file.copy(keep, paste0("./Keep/", keep))

【讨论】:

    猜你喜欢
    • 2021-12-30
    • 1970-01-01
    • 2021-07-13
    • 1970-01-01
    • 1970-01-01
    • 2017-02-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多