Skip to content

Instantly share code, notes, and snippets.

@oganm
Last active October 23, 2018 00:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save oganm/cb0260a30826d13f45720c6c2299d507 to your computer and use it in GitHub Desktop.
Save oganm/cb0260a30826d13f45720c6c2299d507 to your computer and use it in GitHub Desktop.
play with mri data
library(OpenImageR)
library(oro.dicom)
library(dplyr)
library(magrittr)
library(magick)
dicompath = '/home/omancarci/Dropbox/MRI'
imageFiles = list.files(file.path(dicompath,'DICOM'),recursive = TRUE,full.names = TRUE)
metadata = oro.dicom::readDICOMFile(file.path(dicompath,'DICOMDIR'))
imagesInOrder = metadata$hdr %>% filter(name=='ReferencedFileID' & grepl('IM',value)) %$% value %>% gsub(' ','/',.)
# imagesInOrder[1:10]
dir.create('out')
imagePaths = file.path(dicompath,imagesInOrder)
images = seq_along(imagePaths) %>% lapply(function(i){
print(i)
x = imagePaths[i]
image = oro.dicom::readDICOMFile(x)
if(i ==2){
return(NULL)
}
image$img %>% ogbox::scale01() %>% writeImage(paste0('out/',i,'.jpg'))
return(NULL)
})
imStart = 1394
imEnd = 1521
imFiles = list.files('out',full.names = TRUE)
imFiles = imFiles[imFiles %in% paste0('out/',imStart:imEnd,'.jpg')]
images = imFiles %>% lapply(image_read)
sideBySide = 1:ceiling(length(images)/12) %>% lapply(function(i){
image_append(do.call(c,images[(i*12-11):(i*12)]))
})
sideBySide %>% do.call(c,.) %>% image_append(stack = TRUE) %>% image_write('brainMozaic.jpg')
brainspriteR::brainsprite('brainMozaic.jpg',spriteHeight = 512,spriteWidth = 512)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment