Элемент списка, установленный в качестве параметра функции grayscale (), приводит к ошибке

Я загрузил изображения с функцией load.image() в список, и когда я хотел добавить индекс из списка в качестве параметра функции с именем grayscale(), я получил следующую ошибку:

Ошибка в if (Spectrum (im) == 1) {: аргумент имеет нулевую длину

Может ли кто-нибудь помочь мне в этой проблеме?

filenames <- list.files("~/Downloads/project", pattern="*.jpg", full.names = T)
if(!is.null(filenames)){
  for(idx in filenames) {
    im <- idx
    print(im)
    load.image(im)
 
    im1=grayscale(im);

Изменить: проблема решена.

load.image(im) следует сохранить в переменную, а эту следует добавить в качестве параметра для функции grayscale().

filenames <- list.files("~/Downloads/project", pattern="*.jpg", full.names = T)
if(!is.null(filenames)){
  for(idx in filenames) {
    im <- idx
    print(im)
    loaded_image <- load.image(im)
 
    im1=grayscale(loaded_image);

person Bálint Molnár    schedule 08.04.2019    source источник
comment
Я не понимаю, какое здесь желаемое поведение. Откуда берутся функции load.image и grayscale?   -  person MrFlick    schedule 08.04.2019
comment
Привет. Обе функции load.image и градации серого поступают из пакета, называемого imager. Im1 = оттенки серого (im); Линия взята из более старого кода, где она работала, когда с помощью этой функции load.image () был загружен только один файл, поэтому эта ошибка появилась, когда я попытался использовать ее в функции grayscale () с индексом из списка.   -  person Bálint Molnár    schedule 09.04.2019