使用magick从图像列表中读取文本部分并保存在R中

时间:2017-10-29 10:30:35

标签: r imagemagick tesseract

以下是我用于从列表中的多个图像中读取文本的代码,但在调整图像大小后,我想将输出保存到具有确切名称的单独文件夹中。

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

据我所知,我可以采取一些措施来保存图像,使用&#34; image_write&#34;来保存唯一名称。我会感谢任何建议和帮助,并希望它对新用户也非常有帮助。如果可能的话,我需要为大型数据集创建一批约100张图像。

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

1 个答案:

答案 0 :(得分: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

没有必要提供功能,但它使管道更清洁。这样,您可以使管道元素具有副作用,但继续处理。