[ome-users] Matlab JPEG2000 comments
Mario Emmenlauer
mario at emmenlauer.de
Sat Apr 25 09:53:52 BST 2015
Dear Melissa and all,
I'm coming back to a bit older thread here: reading JPEG2000 comments.
Your solution implemented in 2012 works very nicely for me! However
I've just found that in the code there is something that seems not
100% clean to me, and I have a small proposed fix. Here is the issue:
JPEG2000MetadataParser.java invokes parseContiguousCodestream() twice,
seemingly for the same position in the file. How that happens is beyond
my understanding, but it will lead to a duplication of all comments in
the internal list JPEG2000MetadataParser::ArrayList<String> comments.
When feeding this list later into addGlobalMeta(key, value), it becomes
unique, so the issue is never observed (and actually its not really an
issue). But I think its not 100% clean to construct the non-unique list
of comments in the first place, so I propose attached tiny fix. Its not
as good as avoiding the double-reading in the first place, but I was
unable to achieve that :-)
Let me know what you think?
All the best,
Mario
On 13.09.2012 08:20, Mario Emmenlauer wrote:
> On 08/28/2012 08:39 AM, Mario Emmenlauer wrote:
>>
>> Dear Melissa,
>>
>> thanks a lot for the very very quick and helpful response!
>> I'll test the development build ASAP.
>>
>> Cheers,
>>
>> Mario
>>
>>
>>
>> On 08/27/2012 04:55 PM, Melissa Linkert wrote:
>>> Hi Mario,
>>>
>>>> I'm trying to read comment fields from a lossless compressed JPEG200
>>>> file, created with Matlab (R2011b, in case it matters). Matlab supports
>>>> setting a list of arbitrary comments in the file, by specifying a cell
>>>> array of strings as a parameter to imwrite().
>>>> See http://www.mathworks.ch/help/techdoc/ref/imwrite.html#bsfqp3l-1.
>>>>
>>>> I'll send a corresponding image in a separate email. Is it possible
>>>> to read the comment fields with BioFormats?
>>>
>>> Thank you for mentioning this, and for sending a file privately.
>>>
>>> This commit allows the comments to be read and stored in Bio-Formats'
>>> original metadata hashtable:
>>>
>>> https://github.com/melissalinkert/bioformats/commit/eed5a864fb928511a84f9ec48376639b4431b49e
>>>
>>>
>>>
>>> A new development build with that fix should be available within a few
>>> days, otherwise the upcoming 4.4.3 version of Bio-Formats will include
>>> this fix.
>>>
>>> Regards,
>>> -Melissa
>>>
>>> On Mon, Aug 27, 2012 at 01:54:09PM +0200, Mario Emmenlauer wrote:
>>>>
>>>> Dear OME Developers,
>>>>
>>>> I'm trying to read comment fields from a lossless compressed JPEG200
>>>> file, created with Matlab (R2011b, in case it matters). Matlab supports
>>>> setting a list of arbitrary comments in the file, by specifying a cell
>>>> array of strings as a parameter to imwrite().
>>>> See http://www.mathworks.ch/help/techdoc/ref/imwrite.html#bsfqp3l-1.
>>>>
>>>> I'll send a corresponding image in a separate email. Is it possible
>>>> to read the comment fields with BioFormats?
>>>>
>>>> Thanks and all the best,
>>>>
>>>> Mario
>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Mario Emmenlauer, Dipl.Inf. Office: +41-(0)61-26-72200
>>>> Biozentrum Basel
>>>> Klingelbergstrasse 50/70 mailto: mario.emmenlauer * unibas.ch
>>>> CH-4056 Basel http://infectx.org/about_us/emmenlau/
>>>>
>>>>
>>>> _______________________________________________
>>>> ome-users mailing list
>>>> ome-users at lists.openmicroscopy.org.uk
>>>> http://lists.openmicroscopy.org.uk/mailman/listinfo/ome-users
>>>
>> _______________________________________________
>> ome-users mailing list
>> ome-users at lists.openmicroscopy.org.uk
>> http://lists.openmicroscopy.org.uk/mailman/listinfo/ome-users
>>
> _______________________________________________
> ome-users mailing list
> ome-users at lists.openmicroscopy.org.uk
> http://lists.openmicroscopy.org.uk/mailman/listinfo/ome-users
>
--
A: Yes.
> Q: Are you sure?
>> A: Because it reverses the logical flow of conversation.
>>> Q: Why is top posting annoying in email?
Mario Emmenlauer BioDataAnalysis Mobil: +49-(0)151-68108489
Balanstrasse 43 mailto: mario.emmenlauer * unibas.ch
D-81669 München http://www.biodataanalysis.de/
-------------- next part --------------
diff --git a/components/formats-bsd/src/loci/formats/in/JPEG2000MetadataParser.java b/components/formats-bsd/src/loci/formats/in/JPEG2000MetadataParser.java
index 232699b..8e17110 100644
--- a/components/formats-bsd/src/loci/formats/in/JPEG2000MetadataParser.java
+++ b/components/formats-bsd/src/loci/formats/in/JPEG2000MetadataParser.java
@@ -34,6 +34,8 @@ package loci.formats.in;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Set;
+import java.util.LinkedHashSet;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -362,6 +364,9 @@ public class JPEG2000MetadataParser {
LOGGER.trace("Seeking to next segment marker at {}", nextPos);
in.seek(nextPos);
}
+ // remove duplicates from comments:
+ Set<String> commentset = new LinkedHashSet<String>(comments);
+ comments = new ArrayList(commentset);
}
/**
More information about the ome-users
mailing list