Чтение части текста из списка изображений и сохранение в 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
Нет никакой реальной необходимости делать функцию, но она делает трубы чище. Таким образом, вы можете получить элемент трубы с побочным эффектом, но продолжить обработку.