<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Hi<div class=""><br class=""></div><div class="">I’ve been trying to get to grips with using the R wrapping to SimpleITK. On OS X 10.11 I’ve successfully built/compiled SimpleITK from source with Python and R wrapping turned on in Cmake. I can import the SimpleITK package into R 3.2.4 within Studio without any error reports.</div><div class=""><br class=""></div><div class="">The main difficulties I’m finding are around importing CT image volumes which are stored as a series of image slices within a single directory. Following the usual workflow I’ve tried in Python I start with:</div><div class=""><br class=""></div><div class="">reader = ImageSeriesReader()</div><div class=""> </div><div class="">this works ok but the ‘GetGDCMSeriesFileNames’ function is not exposed for the reader object via the $ operator. This is in contrast to the Python wrapping where this function is available as 'reader.GetGDCMSeriesFilenames()'</div><div class=""><br class=""></div><div class="">In R the ImageSeriesReader_GetGDCMSeriesFileNames() static function is available but does not work when supplied with a directory either as a R character vector or as a SimpleITK ‘VectorString’ object.</div><div class=""><br class=""></div><div class="">For the moment I have resorted to getting a list of the files with native R code. Passing this list as an argument to reader$SetFileNames() causes the R session to crash. Instead I’ve created a (SimpleITK) VectorString of appropriate length and then transfer the individual filenames from the R list within a loop, before finally using the reader$SetFileNames(VectorString) method. When I then run reader$Execute the DICOM image series is correctly read to an image object.</div><div class=""><br class=""></div><div class="">Next I need to do some initial image transformation based on certain fields of DICOM metadata. However, I’ve not been able to access this at all. The image$GetMetaDataKeys() function does not work, reporting the error:</div><div class=""><div class=""><br class=""></div><div class=""><i class="">Error in validObject(.Object) : </i></div><div class=""><i class=""> invalid class “_p_std__vectorT_std__string_std__allocatorT_std__string_t_t” object: invalid object for slot "ref" in class "_p_std__vectorT_std__string_std__allocatorT_std__string_t_t": got class "character", should be or extend class "externalptr"</i></div></div><div class=""><br class=""></div><div class="">Image$GetMetaData(key) also returns an error whatever key value I use (including DICOM keys that I know are included in the series), whether these are passed as as an R character string or SimpleITK VectorString.</div><div class=""><br class=""></div><div class="">I know that the metadata is being read, at least to a certain extent, because basic info like pixel spacing, image direction, origin etc are all present and correct, and accessible via their dedicated Get.. methods.</div><div class=""><br class=""></div><div class="">If I’m using these functions with incorrect arguments or committing some other error I would be grateful for any pointers.</div><div class=""><br class=""></div><div class="">Cheers</div><div class="">Mat</div></body></html>