Сохранение изображений из цикла for - PullRequest
0 голосов
/ 30 октября 2019

Я новичок в R и пытаюсь использовать приведенный ниже код для обрезки и сохранения нескольких файлов в цикле R. Он работает нормально, но единственная проблема заключается в том, что при сохранении выходных изображений один и тот же выходной файл перезаписывается, в результате чего сохраняется только последнее изображение. Я хотел бы, чтобы обрезанные изображения сохранялись в виде отдельных файлов как 'trial_1.png', 'trial_2.png' и т. Д. Я не могу понять, как это исправить, любые предложения по этому поводу будут приветствоваться. Код в основном использует функции пакета magick. Заранее спасибо.

Код:


library(pdftools)
library(magick)
library(png)
library(raster)

path = "~/Desktop/RME_task"
file.names<-dir(path, pattern = ".png") 
for(i in 1:length(file.names)){

rme_stimuli_set1_1<-image_read(file.names[i])
rme_stimuli_set1_1_scaled<-image_scale(rme_stimuli_set1_1, "700x700")
rme_stimuli_set1_1_cropped<-image_crop(rme_stimuli_set1_1_scaled, "305x120+118+322")
image_write(rme_stimuli_set1_1_cropped, "CROPPED/trial_.png")

} 

1 Ответ

2 голосов
/ 30 октября 2019

просто меняйте имя файла в каждом взаимодействии.

library(pdftools)
library(magick)
library(png)
library(raster)

path = "~/Desktop/RME_task"
file.names<-dir(path, pattern = ".png") 
for(i in 1:length(file.names)){

rme_stimuli_set1_1<-image_read(file.names[i])
rme_stimuli_set1_1_scaled<-image_scale(rme_stimuli_set1_1, "700x700")
rme_stimuli_set1_1_cropped<-image_crop(rme_stimuli_set1_1_scaled, "305x120+118+322")
image_write(rme_stimuli_set1_1_cropped, paste0("CROPPED/trial_",i,".png"))

} 

, таким образом, каждое взаимодействие в цикле будет создавать trial_1.png, trial_2.png и т. Д.

...