deepzoom level for c openslide library

jcupitt at gmail.com jcupitt at gmail.com
Wed Apr 29 04:00:18 EDT 2015


Hi again Dmitry,

On 29 April 2015 at 06:19, Dmitry Fedorov <fedorov at ece.ucsb.edu> wrote:
> 1) Is it possible to work with many channels (say 30) in VImage.

Yes, vips started out as a scientific image processing library for
multispectral imaging. You can have up to 2^31 bands.

> 2) What is the underlying memory storage layout? Are channels interleaved or
> separated in memory? Are you using row wise storage?

Channels (bands?) are interleaved, and images are stored as arrays of
scanlines, top to bottom.

> 3) Is it possible to get a pointer access to the underlying image data?

There are two ways of doing this. vips images are "virtual", only a
small part of them exists at one time, so you can't get a pointer and
read the whole image. Instead, you create a VipsRegion on an image and
ask for it to be filled with pixels for a certain x y w h. You can
then read pixels from that area with simple pointer arithmetic.

You can also render an entire image to memory, but obviously this will
eat up huge amounts of RAM.

> 4) Is it possible to define an interpolation algorithm used to generate
> "virtual" levels?

Yes, you can supply an "interpolator" option to vips_resize(). The
usual nearest, bilinear and bicubic are supported, plus nohalo, vsqbs
and lbb. You can make your own interpolators by subclassing
VipsInterpolator.

John


More information about the openslide-users mailing list