Как говорится в вопросе, я пытаюсь отсортировать 1000 файлов TIF на основе высоты и ширины пикселя (для экологических целей для всех, кто заинтересован!)
Я написал функцию, которая, используя magick
пакет, который создает простой размер изображения, достигаемый imageinfo$width*imageinfo$height
, см. больше ниже.Это сравнивается с порогом, который решает, большой он или маленький.Функция работает правильно, но я пытаюсь запустить lapply
в списке, выдает сообщение об ошибке с функцией image_read
из magick
.
threshold <- 90000
dirsmallimages <- "C:/Users/James PC/Desktop/smallimages"
dirbigimages<- "C:/Users/James PC/Desktop/bigimages"
imagelist <- as.list(list.files(
path = "C:/Users/James PC/Desktop",
full.names = TRUE,
recursive = FALSE,
pattern = ".tif"
))
bigsmallsorter <- function(singleimage){
imagepreview <- image_read(singleimage)
imagepreview
imageinfo <- image_info(imagepreview)
imagesize <- as.numeric(imageinfo$width*imageinfo$height)
if(imagesize > threshold){
file.copy(from = singleimage, to = dirbigimages, overwrite = TRUE)
} else {
file.copy(from = singleimage, to = dirsmallimages, overwrite = TRUE)
}
}
lapply(imagelist, FUN = bigsmallsorter(singleimage = imagelist)) # this is kaput
Ошибка:
Error in image_read(singleimage) :
path must be URL, filename or raw vector
В настоящее время я просто пытаюсь заставить эту работу работать со списком с одним большим [[1]]
и одним маленьким [[2]]
:
> imagelist
[[1]]
[1] "C:/Users/James PC/Desktop/Pia1.2017-10-03.1726+N00007823_hc.tif"
[[2]]
[1] "C:/Users/James PC/Desktop/Pia1.2017-10-08.1928+N00691602_hc.tif"
Любая помощь будет принята с благодарностью, поскольку сортировка изображений вручнуюполная боль в заднице!
Большое спасибо