У меня большой объем (около 10 000) jpg файлов с датами, написанными на каждом. Я хочу извлечь дату из каждого файла JPG и добавить его к кадру данных с соответствующим именем файла.
Я читал этот форум и далее, и я попытался соединить вместе функцию в R, которая будет выполнять задачу, но я не могу заставить ее работать. Я использовал цикл для:
1) сформировать список файлов изображений в выбранной директории
2) создать фрейм данных для результатов со столбцом для пути к файлу и столбцом
на дату (извлечено из JPG)
3) цикл по файлам в каталоге:
Изменение размера,
Обрезать часть изображения с указанием даты,
OCR изображение,
Запись даты в фрейм данных - созданный на шаге 2
Это похоже на сбой при запуске функции, и я не совсем уверен, почему. Я пользователь R, но раньше не писал функций (вы, вероятно, можете сказать)
Я использую R 3.6.0 и RStudio
library(tesseract)
library(magick)
library(tidyverse)
library(gsubfn)
get_jpeg_date <- function(folder) {
file_list <- list.files(path=folder, pattern="*.jpg", recursive = T)
image_dates <- as.data.frame(file_list)
image_dates $ ImageDate <- rep_len(x = NA, length.out = length(file_list))
eng <- tesseract("eng")
for (i in length(file_list) ) {
ImageDate <- image_read(paste(folder,"\\",file_list, sep = ""))%>%
image_resize("2000") %>%
image_crop("300x100+1800") %>%
tesseract::ocr(engine = eng) %>%
strapplyc("\\d+/\\d+/\\d+", simplify = TRUE)%>%
image_dates[,i]
}
}
x <- get_jpeg_date(folder = folder)
folder <- "C:/file_path"
x <- get_jpeg_date(folder = folder)
Код в цикле работает с отдельными файлами, но при запуске функции на небольшом тестовом образце из 3 jpg-изображений вывод не выводится.