<div dir="ltr"><div>So if you have multi-series images where the series are of differing resolutions, would the ImageIO::Read populate the image array with itk::CovariantArrays (or some other array type?) and just fill in the positions that exist? Because it&#39;s 1 array per position, would that necessitate smaller resolutions being stored after larger resolutions?<br>

<br></div>is there a way, in the ITK API, to request a specific series from the ImageIO?<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Jul 2, 2013 at 9:10 AM, Mark Hiner <span dir="ltr">&lt;<a href="mailto:hinerm@gmail.com" target="_blank">hinerm@gmail.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div>Yep, the SCIFIOImageIO is actually a gateway to a Bio-Formats <a href="https://github.com/openmicroscopy/bioformats/blob/develop/components/scifio/src/loci/formats/ImageReader.java" target="_blank">ImageReader</a>, which provides support for all the <a href="http://loci.wisc.edu/bio-formats/formats" target="_blank">Bio-Formats formats</a>... and it allows updates to Bio-Formats (e.g. new formats) to be automatically supported, without duplicating the work in C++.<br>


<br></div>The <a href="https://github.com/scifio/scifio" target="_blank">SCIFIO source</a> (which is in beta) is just a dynamically extensible ImageIO framework, and we&#39;re working on refactoring Bio-Formats to use the SCIFIO API.<br>


<br></div>Eventually I plan on creating a high-level C++ mirror of the SCIFIO API, which will greatly simplify the SCIFIOImageIO... but for today I&#39;ll be happy just to get multi-series images working :)<br><br></div>

Thanks again.<br>
<div><div><div><br><br></div></div></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Jul 2, 2013 at 8:58 AM, Williams, Norman K <span dir="ltr">&lt;<a href="mailto:norman-k-williams@uiowa.edu" target="_blank">norman-k-williams@uiowa.edu</a>&gt;</span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">That sounds about right.  The first step (if you haven&#39;t done this<br>
already) is to set up a Gerritt account so you can submit patches for<br>
review: <a href="http://www.itk.org/Wiki/ITK/Git/Develop" target="_blank">http://www.itk.org/Wiki/ITK/Git/Develop</a><br>
<br>
<br>
I hadn&#39;t realized until I looked what a crazy thing the SCIFIOImageIO was.<br>
 It starts up a java process and passes it commands?<br>
<br>
I&#39;m not volunteering or anything, but I can&#39;t imagine that the file format<br>
is so complex that it wouldn&#39;t be worth writing a C++ parser for it.<br>
<div><br>
On 7/2/13 8:27 AM, &quot;Mark Hiner&quot; &lt;<a href="mailto:hiner@wisc.edu" target="_blank">hiner@wisc.edu</a>&gt; wrote:<br>
<br>
&gt;The SCIFIOImageIO doesn&#39;t currently have knowledge of the series count,<br>
&gt;but it would be simple to pass that information from the Java portion of<br>
&gt;the ImageIO during the ReadImageInformation step.<br>
&gt;<br>
&gt;<br>
&gt;So it sounds like, if I modify the SCIFIOImageIO to start tracking the<br>
&gt;series count, and use that information to populate the data array<br>
&gt;according to the<br>
&gt;<br>
&gt;VectorImage spec<br>
</div>&gt;&lt;<a href="http://www.itk.org/Doxygen/html/classitk_1_1VectorImage.html#a62029e56578" target="_blank">http://www.itk.org/Doxygen/html/classitk_1_1VectorImage.html#a62029e56578</a><br>
&gt;31db8bdec71a5b3482964&gt; during ImageIO::Read, everything will just work..<br>
<div><div>&gt;right?<br>
&gt;<br>
&gt;Thanks for the help!<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;On Mon, Jul 1, 2013 at 3:34 PM, Williams, Norman K<br>
&gt;&lt;<a href="mailto:norman-k-williams@uiowa.edu" target="_blank">norman-k-williams@uiowa.edu</a>&gt; wrote:<br>
&gt;<br>
&gt;I haven&#39;t worked on the SCIFIO reader, so I&#39;m not sure how it behaves.<br>
&gt;<br>
&gt;In a perfect world, you&#39;d specify an itk::VectorImage as the image type<br>
&gt;for the reader. VectorImage is more efficient in cases where all voxels<br>
&gt;have the same number of vector elements.  Then, when SCIFIO reads the file<br>
&gt;initially, it should know enough about the image format to deduce the<br>
&gt;series size, and reorganize the raw Image Buffer such that the conversion<br>
&gt;to vector voxels does the right thing.<br>
&gt;<br>
&gt;The image type parameter of the ImageFileReader shouldn&#39;t need to specify<br>
&gt;the series size.<br>
&gt;<br>
&gt;<br>
&gt;Looking at the SCIFIOImageIO class, it definitely doesn&#39;t look that smart.<br>
&gt; In that case you&#39;ll need to read the image in as a 4D image of scalar<br>
&gt;voxels, and build the 3D VectorImage from the 4D Scalar Image.<br>
&gt;<br>
&gt;On 7/1/13 3:12 PM, &quot;Mark Hiner&quot; &lt;<a href="mailto:hiner@wisc.edu" target="_blank">hiner@wisc.edu</a>&gt; wrote:<br>
&gt;<br>
&gt;&gt;Hi all,<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;I&#39;m working on a Bio-Formats / ITK bridge that invokes Bio-Formats<br>
&gt;&gt;(SCIFIO) Readers by piping commands from C++ to Java.<br>
&gt;&gt;<br>
&gt;&gt; I&#39;m having some issues with multi-image datasets. I have a file that<br>
&gt;&gt;contains 580 2048x2048x11 images. If I use a pure Bio-Formats conversion<br>
&gt;&gt;tool, the images are merged as a single image with 580 T slices.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; First of all, how should an image like this be represented in ITK? My<br>
&gt;&gt;assumption is as a VectorImage type and not by using the<br>
&gt;&gt;ImageSeriesReader.. as the latter says it needs multiple files, and I<br>
&gt;&gt;have multiple series in a single file.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Given the proper data structure for this dataset, how do I actually<br>
&gt;&gt;determine (or set) the appropriate series size parameters?<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;e.g. if I do have a VectorImage does its size have to be declared to even<br>
&gt;&gt;make a Reader/Writer, or is there some way I can set it from my ImageIO<br>
&gt;&gt;during the ReadImageInformation call?<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;... or if I do have to explicitly declare the size, how can the ImageIO<br>
&gt;&gt;tell which series is currently being queried during ImageIO::Read/Write,<br>
&gt;&gt;so I can pass that series parameter to a Bio-Formats Reader?<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;Thanks,<br>
&gt;&gt;Mark<br>
&gt;&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;________________________________<br>
&gt;Notice: This UI Health Care e-mail (including attachments) is covered by<br>
&gt;the Electronic Communications Privacy Act, 18 U.S.C. 2510-2521, is<br>
&gt;confidential and may be legally privileged.  If you are not the intended<br>
&gt;recipient, you are hereby notified that any<br>
&gt; retention, dissemination, distribution, or copying of this communication<br>
&gt;is strictly prohibited.  Please reply to the sender that you have<br>
&gt;received the message in error, then delete it.  Thank you.<br>
&gt;________________________________<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
<br>
<br>
<br>
________________________________<br>
Notice: This UI Health Care e-mail (including attachments) is covered by the Electronic Communications Privacy Act, 18 U.S.C. 2510-2521, is confidential and may be legally privileged.  If you are not the intended recipient, you are hereby notified that any retention, dissemination, distribution, or copying of this communication is strictly prohibited.  Please reply to the sender that you have received the message in error, then delete it.  Thank you.<br>



________________________________<br>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>