MRXS 2.2 progress

Benjamin Gilbert bgilbert at cs.cmu.edu
Fri Nov 2 22:03:22 EDT 2012


On 11/02/2012 07:46 PM, Agelos Pappas wrote:
> Does MRXS 1.9 have a
> StitchingIntensityLayer as well? Because we've seen seams in 1.9 files
> as well.

1.9 slides use VIMSLIDE_POSITION_BUFFER, so we should already be reading 
them correctly.  If you're seeing seams in a slide with 
CURRENT_SLIDE_VERSION = 1.9, please post its Slidedat.ini and I'll take 
a look.

> Now I guess "all I have to do", is code this back in
> openslide-vendor-mirax.c, right?

Right.  Unfortunately, read_slide_position_file() expects to read 
directly from a file handle, which won't work anymore.  So I guess I 
would suggest:

1.  Restructure read_slide_position_file() to take an argument pointing 
to a buffer containing the position data.  process_indexfile() would 
create that buffer.

2.  Modify _openslide_try_mirax() to add a second 
position_nonhier_offset variable for the StitchingIntensityLayer nonhier 
section.  (Remember to add it to the subtiling check in that function.) 
  Pass it to process_indexfile(), which will sadly bring that function 
up to twenty-*three* parameters.  Have process_indexfile() read the 
compressed data as before, but in the StitchingIntensityLayer case, call 
a helper function to decompress it before passing it to 
read_slide_position_file().

3.  Add test cases for Mirax 2.2.  (This is technically optional, but 
I'd really appreciate it.)  Any error path that you add (for example, 
corrupt DEFLATE stream) should have a test case.

Each of those should be a separate commit.

"cd test; ./driver valgrind 'mirax*'" will help you validate your 
changes.  You'll need to fetch the openslide-testdata:

     rsync -aP rsync://openslide.cs.cmu.edu/openslide-testdata/ \
         openslide-testdata

and do a "./driver initialize" first.  Caution: 20 GB download.

As I recall, your last patch to OpenSlide was before the GError 
conversion.  GError has strict usage rules, which you should read before 
you start digging into the MIRAX code:

 
http://developer.gnome.org/glib/stable/glib-Error-Reporting.html#glib-Error-Reporting.description

I will go ahead and add the zlib dependency to the build system, as well 
as a vanilla test case for Mirax 2.2.

--Benjamin Gilbert



More information about the openslide-users mailing list