[ITK] [ITK-users] Using Python SimpleITK to Read/Write to BytesIO instance rather than file
Lowekamp, Bradley (NIH/NLM/LHC) [C]
blowekamp at mail.nih.gov
Wed Oct 26 11:37:26 EDT 2016
Hi,
Have you done a performance comparison? These other libraries may just download and cache the files, before doing file IO.
I recall there was a URL/HTTP based ITK ImageIO, but that just downloaded the files and then use the actual file ImageIO. It was wrapped in a nice package to enable seamless passing of “http” URLS as filename strings to ITK.
HTH,
Brad
> On Oct 26, 2016, at 11:26 AM, Brian E Chapman <Brian.Chapman at utah.edu> wrote:
>
> Ziv,
>
> Thanks for your reply and the pointer to opneigtlink. Our main motivation is speed: just trying to save the write-to-disk/read-from-disk costs. Using PyDICOM we can read directly from Girder via streams and I believe we also can with nibabel. But ultimately our processing will be done with ITK and I was hoping to have SimpleITK so I was hoping to avoid all the challenges of reading in one format, passing to simpleitk and trying to keep track of all the meta data appropriately in the process.
>
> Brian
>
> ------
> Brian E. Chapman, Ph.D.
> Associate Professor
> Department of Radiology and Imaging Sciences
> University of Utah
>
>> On Oct 26, 2016, at 8:22 AM, Yaniv, Ziv Rafael (NIH/NLM/LHC) [C] <zivrafael.yaniv at nih.gov> wrote:
>>
>> Hi Brian,
>>
>> Currently ITK/SimpleITK do not have components for reading an image
>> directly from a stream. We usually download, save to disk, and read from
>> disk using the appropriate IO. We used this approach with our Jupyter
>> notebooks where the read function either finds the data in a cache or
>> fetches it from MIDAS into the cache and then reads it
>> (https://github.com/InsightSoftwareConsortium/SimpleITK-Notebooks/blob/mast
>> er/downloaddata.py).
>>
>> The challenge with streaming is that we currently don't have a protocol
>> for interpreting the streamed data (meta-data-dictionary + intensity/color
>> values). A possible solution is to use a client-server architecture with
>> the OpenIGTLink protocol (http://openigtlink.org). You can transfer
>> meta-data (patient name etc.) and complete images. See the specification
>> on their website.
>>
>> Out of curiosity, what is the motivation for the streaming only approach
>> (girder -> SimpleITK -> girder)?
>>
>> hope this helps
>> Ziv
>>
>>
>>
>>
>>
>> On 10/25/16, 5:15 PM, "Brian E Chapman" <Brian.Chapman at utah.edu> wrote:
>>
>>> Hi,
>>>
>>> We are looking at using SimpleITK in conjunction with Girder to read
>>> images from girder manipulate the images with a Python script and then
>>> write the contents back up to Girder. We would prefer to do this using
>>> Byte streams rather than saving to a local file, reading/writing to the
>>> local file and then uploading the file to Girder, but we have not been
>>> able to find a way within SimpleITK (within Python) to read and write
>>> from/to streams rather than files.
>>>
>>> Any guidance would be appreciated.
>>>
>>> Brian
>>>
>>> _____________________________________
>>> Powered by www.kitware.com
>>>
>>> Visit other Kitware open-source projects at
>>> http://www.kitware.com/opensource/opensource.html
>>>
>>> Kitware offers ITK Training Courses, for more information visit:
>>> http://www.kitware.com/products/protraining.php
>>>
>>> Please keep messages on-topic and check the ITK FAQ at:
>>> http://www.itk.org/Wiki/ITK_FAQ
>>>
>>> Follow this link to subscribe/unsubscribe:
>>> http://public.kitware.com/mailman/listinfo/insight-users
>>
>
> _____________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Kitware offers ITK Training Courses, for more information visit:
> http://www.kitware.com/products/protraining.php
>
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/insight-users
> _______________________________________________
> Community mailing list
> Community at itk.org
> http://public.kitware.com/mailman/listinfo/community
_____________________________________
Powered by www.kitware.com
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Kitware offers ITK Training Courses, for more information visit:
http://www.kitware.com/products/protraining.php
Please keep messages on-topic and check the ITK FAQ at:
http://www.itk.org/Wiki/ITK_FAQ
Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/insight-users
More information about the Community
mailing list