<div dir="ltr">Hi Michael,<br><br><div><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote">-  the scifio ImgOpener's openImg method has the parameters Reader, type, factory and options<br>


        - What is the relationship between Reader and IFormatReader (we used previously the openImg(IFormatReader ...) method)<br>
        - can we retriev the type from a Reader (IFormatReader x; ImgIOUtils.makeType(x.getPixelType())<br></blockquote><div><br></div><div> An <a href="https://github.com/openmicroscopy/bioformats/blob/develop/components/scifio/src/loci/formats/IFormatReader.java">IFormatReader</a> is the loci.formats base reader interface that performs all the metadata parsing and pixel reading in Bio-Formats. In SCIFIO, the process is split into components such as a <a href="https://github.com/scifio/scifio/blob/master/scifio/src/main/java/io/scif/Parser.java">Parser</a> or <a href="https://github.com/scifio/scifio/blob/master/scifio/src/main/java/io/scif/Reader.java">Reader</a>. So the io.scif Reader API is a subset of the IFormatReader, specifically for opening pixels.<br>

<br></div><div>The pixel type (and all other metadata) is now stored in the i<a href="https://github.com/scifio/scifio/blob/master/scifio/src/main/java/io/scif/Metadata.java">o.scif.Metadata</a> class, which gets attached to the Reader. <a href="https://github.com/scifio/scifio/blob/master/scifio/src/main/java/io/scif/Reader.java#L171">Reader#getMetadata()</a> will get the current Metadata object, and <a href="https://github.com/scifio/scifio/blob/master/scifio/src/main/java/io/scif/Metadata.java#L154">Metadata#getPixelType(int)</a> gets the pixel type for a specified image index (the Metadata class is at the dataset level; if you have a single image in your dataset, you can just get getPixelType(0) ).<br>

<br></div><div>Note that the entry point for all these classes is the <a href="https://github.com/scifio/scifio/blob/master/scifio/src/main/java/io/scif/Format.java">Format</a>. Also, there is a <a href="https://github.com/scifio/scifio/tree/master/tutorials">series of tutorials</a> introducing the SCIFIO API, with a specific focus on transitioning from the loci.formats API.<br>

</div><div id=":1lv"><br><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote">
- the <a href="http://imglib2.io" target="_blank">imglib2.io</a> ImgOpener has some static methods like<br>
        - public static AxisType[] getDimTypes(final IFormatReader r)<br>
        - public static double[] getCalibration(final IFormatReader r)<br></blockquote><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote">
    how can I retriev such data using the scifio ImgOpener?<br></blockquote><div><br></div><div> The io.scif.Metadata class uses the imglib AxisTypes natively to manage dimensions. So if you have an io.scif.Reader, you can get its Metadata (as above) and call <a href="https://github.com/scifio/scifio/blob/master/scifio/src/main/java/io/scif/Metadata.java#L268">Metadata#getAxes(int)</a> for the desired image index within the dataset. <br>

<br>Unfortunately the calibration data is more complicated right now. In the loci.formats API, all the calibration information was tracked as physical pixel sizes in the MetadataStore. So in the io.scif API, that metadata only exists in the <a href="https://github.com/scifio/bioformats/blob/scifio/components/ome-xml/src/ome/xml/meta/OMEMetadata.java">OMEMetadata</a> class, which requires our fork of Bio-Formats on the classpath, and then requires <a href="https://github.com/scifio/scifio/blob/master/scifio/src/main/java/io/scif/services/TranslatorService.java">Translation</a>. Our intention is to make calibration information a fundamental part of the axes representation, but I'm not sure if this will be at the ImgLib or SCIFIO level.<br>

<br></div><div>One way or another, it will eventually be part of the io.scif.Metadata API.<br></div><div><br></div><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote">

- ImgOptions supports the selection of an interval (thanks for that). 
But for our implementation we would need a multiple interval selection 
(e.g. the first 10 frames of a video and the last 10). Is it possible to
 change the implementation such that ImgOption accepts an array of 
intervals?<br>
</blockquote></div><br></div><div>Yes, this is a very good idea and I'm sorry it wasn't available from the beginning. I've added <a href="https://github.com/scifio/scifio/issues/14">an issue to track it</a> and will get it into the next SCIFIO release.<br>

<br></div><div>Thanks for the feedback and let me know if you have any more questions.<br><br></div><div>- Mark<br><br>P.S. there is now a SCIFIO mailing list (<a href="mailto:scifio@scif.io">scifio@scif.io</a>, copied) for scifio-specific issues<br>

</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Jul 5, 2013 at 5:35 AM, Michael Zinsmaier <span dir="ltr"><<a href="mailto:michael.zinsmaier@gmx.de" target="_blank">michael.zinsmaier@gmx.de</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi together, hi Mark,<br>
<br>
I just started to convert the Knime Image Processing "Image Reader" code to the new implementation of ImgOpener (scifio). However I am a bit stuck could you help me with a few questions regarding the code changes?<br>


<br>
- the <a href="http://imglib2.io" target="_blank">imglib2.io</a> ImgOpener has some static methods like<br>
        - public static AxisType[] getDimTypes(final IFormatReader r)<br>
        - public static double[] getCalibration(final IFormatReader r)<br>
<br>
    how can I retriev such data using the scifio ImgOpener?<br>
<br>
-  the scifio ImgOpener's openImg method has the parameters Reader, type, factory and options<br>
        - What is the relationship between Reader and IFormatReader (we used previously the openImg(IFormatReader ...) method)<br>
        - can we retriev the type from a Reader (IFormatReader x; ImgIOUtils.makeType(x.<u></u>getPixelType())<br>
<br>
- ImgOptions supports the selection of an interval (thanks for that). But for our implementation we would need a multiple interval selection (e.g. the first 10 frames of a video and the last 10). Is it possible to change the implementation such that ImgOption accepts an array of intervals?<br>


<br>
Thanks in advance<br>
best regards,<br>
Michael<br>
<br>
______________________________<u></u>_________________<br>
ImageJ-devel mailing list<br>
<a href="mailto:ImageJ-devel@imagej.net" target="_blank">ImageJ-devel@imagej.net</a><br>
<a href="http://imagej.net/mailman/listinfo/imagej-devel" target="_blank">http://imagej.net/mailman/<u></u>listinfo/imagej-devel</a><br>
</blockquote></div><br></div>