Чтение части текста из списка изображений и сохранение в R, используя магию

Вот код, который я использую для чтения текста из нескольких изображений в моем списке, но после изменения размера изображения я хочу сохранить выходные данные в отдельных папках с точным именем.

library(magick)
library(magrittr)
    test <- image_read(list) %>%
      image_crop("100x16+161+68")%>%
      image_resize("2000") %>%
      image_convert() %>%      
      image_trim() %>%
      image_ocr()
    cat(test)

Насколько я понял, я могу кое-что сделать, чтобы сохранить изображение, уникальные имена с помощью image_write. Я был бы благодарен за любые предложения и помощь, и надеюсь, что это будет очень полезно для новых пользователей. Если это возможно, мне нужно создать пакет из около 100 изображений для большого набора данных.

 image_write(list, path = "/data/backup", format = "png") %>%

1 ответ

Решение

Это один из способов:

library(magick)
library(purrr)

save_image <- function(img, img_name, output_dir) {
  image_write(img, file.path(output_dir, basename(img_name)))
  img
}

fils <- list.files("/tmp/so", pattern="png$", full.names = TRUE)

map(fils, ~{
  curr_fil <- .x
  image_read(curr_fil) %>%
    image_crop("100x16+161+68") %>%
    image_resize("2000") %>%
    save_image(curr_fil, "/tmp/backup") %>% 
    image_convert() %>%      
    image_trim() %>%
    image_ocr()
}) -> ocr_result

Нет никакой реальной необходимости делать функцию, но она делает трубы чище. Таким образом, вы можете получить элемент трубы с побочным эффектом, но продолжить обработку.

Другие вопросы по тегам