Печать нескольких изображений .TIFF вместе с отдельными заголовками в R - PullRequest
0 голосов
/ 09 июля 2020

Я хотел бы построить несколько изображений .TIFF в R и добавить к ним отдельные заголовки. Без заголовков этот фрагмент кода выполняет свою работу:

require(raster)

setwd("...")
files = list.files(pattern="*.tif")

tiff("balanded_1.tiff", units="in", width=21, height=26, res=300, compression = 'lzw') #for saving

par(mfrow=c(5,3)) 

for (i in 1:15) {
  plotRGB(brick(files[i]))
}

dev.off() #save figure

Однако, если я пытаюсь добавить отдельные заголовки к изображениям с помощью plotRGB (), он автоматически добавляет к ним оси (потому что ' axes = TRUE 'становится требованием в функции ' plotRGB () '), и я получаю что-то вроде этого:

plotRGB(brick(files[2]), axes=TRUE, main="TITLE", xlab="", ylab="")

введите описание изображения здесь

Я понимаю, что «plotRGB ()», вероятно, не подходит для работы (поскольку я не рисую карты), но мне интересно, есть ли способ заставить ее работать? Если нет, могу ли я использовать альтернативу? Заранее благодарю

1 Ответ

0 голосов
/ 17 июля 2020

Мне удалось найти решение этой проблемы с помощью более подходящего пакета для обработки изображений:

require(magick)

setwd("...")
files = list.files(pattern="*.tif")

tiff("balanded_1.tiff", units="in", width=21, height=26, res=300, compression = 'lzw')
par(mfrow=c(5,3)) 
for (i in 1:15) {
  name <- files[i] 
  lag <- strsplit(name, "_")[[1]][2] #get the name right for the image
  match <- strsplit(name, "_")[[1]][4]
  lead <- strsplit(name, "_")[[1]][6]
  lead <- strsplit(lead, ".tiff")[[1]][1]
  name <- paste("   Lag=",lag,", Match=1:",match,", Lead=",lead, sep = "") #put the name together
  img <- image_annotate(image_read(files[i]), name, font = 'Times', size = 120) #read the image and add the name
  img <- image_crop(img, "1500x1050")
  plot(img) 
}
dev.off() #save figure
...