[ome-devel] OME-TIFF merge
Grabmayr, Heinrich
Heinrich.Grabmayr at ph.tum.de
Thu Sep 13 17:05:56 BST 2012
Hi Melissa,
thanks a lot for that input. I used your snipped and it worked fine. Now I also want to copy metadata to the newly created merge. I am able to get the metadata via
//--
// get the metadata from the Imp
String OmeXml = "";
OmeXml = Imp.getOriginalFileInfo().description;
// create bio-formats metadata object out of the omexml
IMetadata Meta = MetadataTools.createOMEXMLMetadata(OmeXml);
--//
However, I only know how to get and set single metadata entries, like
//
DyeList[i] = Meta.getChannelFluor(0,i);
//
Is it possible to get all metadata concerning one channel, concerning the instrument, or the pixels entries with one command only?
Because otherwise, I would need to go through all entries that might be set in the metadata, right?
Best, Heinrich
-----Ursprüngliche Nachricht-----
Von: Melissa Linkert [mailto:melissa.linkert at gmail.com] Im Auftrag von Melissa Linkert
Gesendet: Donnerstag, 13. September 2012 02:46
An: Grabmayr, Heinrich
Cc: ome-devel at lists.openmicroscopy.org.uk
Betreff: Re: [ome-devel] OME-TIFF merge
Hi Heinrich,
> I have a similar question to the one below which I found on the ome-users list.
>
> My data is ome-tif, and I have different images with several channels. I would like to merge one or more of each to a resulting ome-tif, also copying the according metadata. Is there a plugin out there that does this?
Not to my knowledge, no.
> The route I found was to use LOCI channel splitter, convert to a hyperstack, and then merge in there. That does not keep the metadata, though, I fear.
>
> For writing a plugin myself, my questions would be
>
> - Can IMetadata give me the complete "channel" metadata? Or should I cut it out of the xml string?
Yes, IMetadata can give you anything that would be in the OME-XML string.
> - Is there a more intelligent way of copying a whole channel than to go through all frames and z-positions and do it pixelwise via stack.setVoxel? (I did find the ImageProcessor.getPixels() but did not understand how to use its return value)
You could do something like this instead:
// --
ImagePlus originalStack = BF.openImagePlus(file)[0]; int[] dimensions = originalStack.getDimensions(); int channel = 0; ImageStack singleChannel = new ImageStack();
for (int z=0; z<dimensions[3]; z++) {
for (int t=0; t<dimensions[4]; t++) {
originalStack.setPositionWithoutUpdate(channel + 1, z + 1, t + 1);
singleChannel.addSlice(originalStack.getProcessor());
}
}
ImagePlus newStack = new ImagePlus("the first channel", singleChannel); // --
> And more generally, I sometimes feel that I fail to know basic methods and utils within the loci / bio-formats framework. Are there collections of ome-tiff plugins around (more than those in ImageJ->plugins->Loci and components/loci-plugins/utils)? Also, is there a guide/introduction on how to do things? I often write things that work but at the same time guessing there might be a useful class I don't know of that would make it more elegant...
Have you read through all of the documentation here:
http://trac.openmicroscopy.org.uk/ome/wiki/BioFormats
and here:
http://loci.wisc.edu/bio-formats/bio-formats-java-library
in particular these examples:
https://github.com/openmicroscopy/bioformats/tree/develop/components/bio-formats/utils
(which are not ImageJ-related, but do show you some possibly useful things about using Bio-Formats).
That's about as close as we have to a guide at the moment; otherwise, the best thing to do really is to familiarize yourself with the Javadoc documentation (linked from both of the above) and ask questions here.
Regards,
-Melissa
On Wed, Sep 12, 2012 at 06:37:10PM +0000, Grabmayr, Heinrich wrote:
> Hi,
>
>
>
> I have a similar question to the one below which I found on the ome-users list.
>
> My data is ome-tif, and I have different images with several channels. I would like to merge one or more of each to a resulting ome-tif, also copying the according metadata. Is there a plugin out there that does this?
>
> The route I found was to use LOCI channel splitter, convert to a hyperstack, and then merge in there. That does not keep the metadata, though, I fear.
>
> For writing a plugin myself, my questions would be
>
> - Can IMetadata give me the complete "channel" metadata? Or should I cut it out of the xml string?
>
> - Is there a more intelligent way of copying a whole channel than to go through all frames and z-positions and do it pixelwise via stack.setVoxel? (I did find the ImageProcessor.getPixels() but did not understand how to use its return value)
>
>
>
> And more generally, I sometimes feel that I fail to know basic methods and utils within the loci / bio-formats framework. Are there collections of ome-tiff plugins around (more than those in ImageJ->plugins->Loci and components/loci-plugins/utils)? Also, is there a guide/introduction on how to do things? I often write things that work but at the same time guessing there might be a useful class I don't know of that would make it more elegant...
>
>
>
> Best
>
> Heinrich
>
>
>
>
>
>
>
>
>
>
> Melissa Linkert melissa at glencoesoftware.com
> <mailto:ome-users%40lists.openmicroscopy.org.uk?Subject=Re%3A%20%5Bome
> -users%5D%20Combine%20two%20tif%20to%20a%20multilayer%20tif&In-Reply-T
> o=%3C20120514180726.GC31887%40medusa%3E>
> Mon May 14 19:07:26 BST 2012
>
> * Previous message: [ome-users] Combine two tif to a multilayer tif <http://lists.openmicroscopy.org.uk/pipermail/ome-users/2012-May/003057.html>
> * Next message: [ome-users] Importing .dv File via BioFormats <http://lists.openmicroscopy.org.uk/pipermail/ome-users/2012-May/003059.html>
> * Messages sorted by: [ date ]<http://lists.openmicroscopy.org.uk/pipermail/ome-users/2012-May/date.html#3058> [ thread ]<http://lists.openmicroscopy.org.uk/pipermail/ome-users/2012-May/thread.html#3058> [ subject ]<http://lists.openmicroscopy.org.uk/pipermail/ome-users/2012-May/subject.html#3058> [ author ]<http://lists.openmicroscopy.org.uk/pipermail/ome-users/2012-May/author.html#3058>
>
>
>
>
>
> Hi Jürgen,
>
>
>
> > I have some image data in MetaMorph format. The Image format is not
>
> > supported by Omero and I have to create an OME-XML header prior to
>
> > importing the data.
>
>
>
> MetaMorph data is definitely supposed to be supported. Could you
> please
>
> tell us what goes wrong when you try to import it into OMERO (as the
>
> simplest solution is almost always to just import the original data)?
>
>
>
> > Each channel (I have two, DAPI and GFP) is saved in a single separate image.
>
> >
>
> > For further processing I would like to combine the two channel
>
> > images into a multi-layer tif file with a single header.
>
> >
>
> > I can do using convert from the imagemagick pckage:
>
> >
>
> > convert file1.tif file2.tif output.tif
>
> >
>
> > But that literally just concatenates the two files, resulting in a
>
> > multi-layer file but also in two headers, so I have
>
> >
>
> > Exif.Image.Description
>
> >
>
> > as well as:
>
> >
>
> > Exif.Image2.Description
>
> >
>
> > Does anyone know of a tool to properly combine the two tiff files
>
> > resulting in a new multi-layer tif file with a single header?
>
>
>
> I believe this:
>
>
>
> http://www.imagemagick.org/Usage/color_basics/#combine
>
>
>
> and this:
>
>
>
> http://www.imagemagick.org/discourse-server/viewtopic.php?f=1&t=13534
>
>
>
> explain how to do what you want in ImageMagick.
>
>
>
> Regards,
>
> -Melissa
>
>
>
> On Mon, May 14, 2012 at 06:15:24PM +0200, Dr. Juergen helmers wrote:
>
> > Hi!
>
> >
>
> > I have some image data in MetaMorph format. The Image format is not
>
> > supported by Omero and I have to create an OME-XML header prior to
>
> > importing the data.
>
> >
>
> > Each channel (I have two, DAPI and GFP) is saved in a single separate image.
>
> >
>
> > For further processing I would like to combine the two channel
>
> > images into a multi-layer tif file with a single header.
>
> >
>
> > I can do using convert from the imagemagick pckage:
>
> >
>
> > convert file1.tif file2.tif output.tif
>
> >
>
> > But that literally just concatenates the two files, resulting in a
>
> > multi-layer file but also in two headers, so I have
>
> >
>
> > Exif.Image.Description
>
> >
>
> > as well as:
>
> >
>
> > Exif.Image2.Description
>
> >
>
> > Does anyone know of a tool to properly combine the two tiff files
>
> > resulting in a new multi-layer tif file with a single header?
>
> >
>
> > Thanks Juergen
>
> >
>
> > --
>
> > *Dr. Jürgen Helmers*
>
> > /Chief Developer/ | webnow | http://www.web-now.de
>
> > *email:*juergen.helmers at
> > gmail.com<http://lists.openmicroscopy.org.uk/mailman/listinfo/ome-us
> > ers> | *tel:*+49 30 37301306 | *skype:*
>
> > helmerj
>
>
>
> > _______________________________________________
>
> > ome-users mailing list
>
> > ome-users at
> > lists.openmicroscopy.org.uk<http://lists.openmicroscopy.org.uk/mailm
> > an/listinfo/ome-users>
>
> > http://lists.openmicroscopy.org.uk/mailman/listinfo/ome-users
>
> _______________________________________________
> ome-devel mailing list
> ome-devel at lists.openmicroscopy.org.uk
> http://lists.openmicroscopy.org.uk/mailman/listinfo/ome-devel
More information about the ome-devel
mailing list