public interface RenderingEngine extends StatefulServiceInterface
A pixels set is a 5D array that stores the pixels data of an image, that is the pixels intensity values. Every instance of this service is paired up to a pixels set. Use this service to transform planes within the pixels set onto an RGB image.
The RenderingEngine
allows to fine-tune the settings that
define the transformation context that is, a specification of how raw
pixels data is to be transformed into an image that can be displayed on
screen. Those settings are referred to as rendering settings or display
options. After tuning those settings it is possible to save them to the
metadata repository so that they can be used the next time the pixels set is
accessed for rendering; for example by another RenderingEngine
instance. Note that the display options are specific to the given pixels set
and are experimenter scoped that is, two different users can specify
different display options for the same pixels set. (A
RenderingEngine
instance takes this into account automatically
as it is always bound to a given experimenter.)
This service is thread-safe.
Modifier and Type | Method and Description |
---|---|
void |
addCodomainMap(CodomainMapContext mapCtx)
Deprecated.
|
void |
addCodomainMapToChannel(CodomainMapContext mapCtx,
int w)
Adds the context to the mapping chain.
|
java.util.List |
getAvailableFamilies()
Returns the list of mapping families supported by the Rendering engine.
|
java.util.List |
getAvailableModels()
Returns the list of color models supported by the Rendering engine.
|
double |
getChannelCurveCoefficient(int w)
Returns the coefficient identifying a map in the family.
|
Family |
getChannelFamily(int w)
Returns the family associated to the specified channel.
|
java.lang.String |
getChannelLookupTable(int w) |
boolean |
getChannelNoiseReduction(int w)
Returns
true if the noise reduction algorithm used to map
the pixels intensity values is turned on, false if the
algorithm is turned off. |
double[] |
getChannelStats(int w) |
double |
getChannelWindowEnd(int w)
Returns the upper bound of the pixels intensity interval.
|
double |
getChannelWindowStart(int w)
Returns the lower bound of the pixels intensity interval.
|
java.util.List<CodomainMapContext> |
getCodomainMapContext(int w)
Returns the list of codomain contexts associated to the specified
channel.
|
float |
getCompressionLevel()
Returns the current compression level for the service.
|
int |
getDefaultT()
Returns the default timepoint index.
|
int |
getDefaultZ()
Returns the index of the default focal section.
|
RenderingModel |
getModel()
Returns the model that dictates how transformed raw data has to be mapped
onto a color space.
|
Pixels |
getPixels()
Returns the
Pixels set the Rendering engine is for. |
double |
getPixelsTypeLowerBound(int w)
Returns the minimum value for that channels depending on the pixels
type and the original range (globalmax, globalmin)
|
double |
getPixelsTypeUpperBound(int w)
Returns the maximum value for that channels depending on the pixels
type and the original range (globalmax, globalmin)
|
QuantumDef |
getQuantumDef()
Returns the quantization object.
|
long |
getRenderingDefId()
Returns the id of the
RenderingDef loaded by
either lookupRenderingDef(long) or
loadRenderingDef(long) . |
java.lang.Object |
getResolutionDescriptions() |
int |
getResolutionLevel() |
int |
getResolutionLevels() |
int[] |
getRGBA(int w)
Returns a 4D-array representing the color associated to the specified
channel.
|
int[] |
getTileSize() |
boolean |
isActive(int w)
Returns
true if the channel is mapped, false
otherwise. |
boolean |
isPixelsTypeSigned()
Returns
true if the pixels type is signed,
false otherwise. |
void |
load()
Creates a instance of the rendering engine.
|
void |
loadRenderingDef(long renderingDefId)
Loads a specific set of rendering settings that does not necessarily
have to be linked to the given Pixels set.
|
void |
lookupPixels(long pixelsId)
Loads the
Pixels set this Rendering Engine is for. |
boolean |
lookupRenderingDef(long pixelsId)
Loads the rendering settings associated to the specified pixels set.
|
void |
removeCodomainMap(CodomainMapContext mapCtx)
Deprecated.
|
void |
removeCodomainMapFromChannel(CodomainMapContext mapCtx,
int w)
Removes the specified context from the chain.
|
RGBBuffer |
render(PlaneDef pd)
Renders the data selected by
pd according to the current
rendering settings. |
int[] |
renderAsPackedInt(PlaneDef pd)
Renders the data selected by
pd according to the current
rendering settings. |
byte[] |
renderCompressed(PlaneDef pd)
Renders the data selected by
pd according to the current
rendering settings and compresses the resulting RGBA composite image. |
int[] |
renderProjectedAsPackedInt(int algorithm,
int timepoint,
int stepping,
int start,
int end)
Performs a projection through selected optical sections of a particular
timepoint with the currently active channels and renders the data for
display.
|
byte[] |
renderProjectedCompressed(int algorithm,
int timepoint,
int stepping,
int start,
int end)
Performs a projection through selected optical sections of a particular
timepoint with the currently active channels, renders the data for
display and compresses the resulting RGBA composite image.
|
boolean |
requiresPixelsPyramid() |
long |
resetDefaultSettings(boolean save)
Resets the default settings i.e. the default values internal to the
Rendering engine.
|
long |
saveAsNewSettings()
Saves the current rendering settings in the database
as a new
RenderingDef and loads the object
into the current RenderingEngine . |
void |
saveCurrentSettings()
Saves the current rendering settings in the database.
|
void |
setActive(int w,
boolean active)
Maps the specified channel if
true , unmaps the channel
otherwise. |
void |
setChannelLookupTable(int w,
java.lang.String lookup) |
void |
setChannelWindow(int w,
double start,
double end)
Returns the pixels intensity interval.
|
void |
setCodomainInterval(int start,
int end)
Sets the sub-interval of the device space i.e. a discrete sub-interval of
[0, 255]
|
void |
setCompressionLevel(float percentage)
Sets the current compression level for the service.
|
void |
setDefaultT(int t)
Sets the default timepoint index.
|
void |
setDefaultZ(int z)
Sets the index of the default focal section.
|
void |
setModel(RenderingModel model)
Specifies the model that dictates how transformed raw data has to be
mapped onto a color space.
|
void |
setOverlays(java.util.Map<byte[],java.lang.Integer> overlays)
Informs the rendering engine that it should render a set of overlays on
each rendered frame.
|
void |
setQuantizationMap(int w,
Family family,
double coefficient,
boolean noiseReduction)
Sets the quantization map, one per channel.
|
void |
setQuantumStrategy(int bitResolution)
Sets the quantization strategy.
|
void |
setResolutionLevel(int resolutionLevel) |
void |
setRGBA(int w,
int red,
int green,
int blue,
int alpha)
Sets the four components composing the color associated to the specified
channel.
|
void |
updateCodomainMap(CodomainMapContext mapCtx)
Deprecated.
|
void |
updateSettings(RenderingDef settings)
Updates the current rendering settings based on a provided rendering
definition and associated sub-objects.
|
activate, close, getCurrentEventContext, passivate
RGBBuffer render(PlaneDef pd)
pd
according to the current
rendering settings. The passed argument selects a plane orthogonal to one
of the X, Y, or Z axes. How many wavelengths are
rendered and what color model is used depends on the current rendering
settings.pd
- Selects a plane orthogonal to one of the X, Y,
or Z axes.ValidationException
- If pd
is null
.int[] renderAsPackedInt(PlaneDef pd)
pd
according to the current
rendering settings. The passed argument selects a plane orthogonal to one
of the X, Y, or Z axes. How many wavelengths are
rendered and what color model is used depends on the current rendering
settings.pd
- Selects a plane orthogonal to one of the X, Y,
or Z axes.ValidationException
- If pd
is null
.render(PlaneDef)
byte[] renderCompressed(PlaneDef pd)
pd
according to the current
rendering settings and compresses the resulting RGBA composite image.pd
- Selects a plane orthogonal to one of the X, Y,
or Z axes.ValidationException
- If pd
is null
.render(PlaneDef)
,
renderAsPackedInt(PlaneDef)
int[] renderProjectedAsPackedInt(int algorithm, int timepoint, int stepping, int start, int end)
algorithm
- IProjection.MAXIMUM_INTENSITY
,
IProjection.MEAN_INTENSITY
or
IProjection.SUM_INTENSITY
.stepping
- Stepping value to use while calculating the projection.
For example, stepping=1
will use every optical section from
start
to end
where stepping=2
will
use every other section from start
to end
to
perform the projection.start
- Optical section to start projecting from.end
- Optical section to finish projecting.ValidationException
- Where:
algorithm
is unknowntimepoint
is out of rangestart
is out of rangeend
is out of rangestart > end
IProjection.projectPixels(long, PixelsType, int, int, int, List, int, int, int, String)
byte[] renderProjectedCompressed(int algorithm, int timepoint, int stepping, int start, int end)
algorithm
- IProjection.MAXIMUM_INTENSITY
,
IProjection.MEAN_INTENSITY
or
IProjection.SUM_INTENSITY
.stepping
- Stepping value to use while calculating the projection.
For example, stepping=1
will use every optical section from
start
to end
where stepping=2
will
use every other section from start
to end
to
perform the projection.start
- Optical section to start projecting from.end
- Optical section to finish projecting.ValidationException
- Where:
algorithm
is unknowntimepoint
is out of rangestart
is out of rangeend
is out of rangestart > end
IProjection.projectPixels(long, PixelsType, int, int, int, List, int, int, int, String)
void lookupPixels(long pixelsId)
Pixels
set this Rendering Engine is for.pixelsId
- The pixels set ID.long getRenderingDefId()
RenderingDef
loaded by
either lookupRenderingDef(long)
or
loadRenderingDef(long)
.boolean lookupRenderingDef(long pixelsId)
pixelsId
- The pixels set ID.true
if a RenderingDef
exists for the
Pixels
set, otherwise false
.void loadRenderingDef(long renderingDefId)
IRenderingSettings.sanityCheckPixels(Pixels, Pixels)
.renderingDefId
- The rendering definition ID.ValidationException
- If a RenderingDef
does not
exist with the ID renderingDefId
or if the
RenderingDef
is incompatible due to differing pixels sets.void setOverlays(java.util.Map<byte[],java.lang.Integer> overlays)
overlays
- Binary mask to color map.void load()
void setModel(RenderingModel model)
model
- Identifies the color space model.RenderingModel getModel()
int getDefaultZ()
int getDefaultT()
void setDefaultZ(int z)
z
- The value to set.void setDefaultT(int t)
t
- The value to set.Pixels getPixels()
Pixels
set the Rendering engine is for.java.util.List getAvailableModels()
java.util.List getAvailableFamilies()
void setQuantumStrategy(int bitResolution)
bitResolution
- The bit resolution defining associated to the strategy.void setCodomainInterval(int start, int end)
start
- The lower bound of the interval.end
- The upper bound of the interval.QuantumDef getQuantumDef()
void setQuantizationMap(int w, Family family, double coefficient, boolean noiseReduction)
w
- The channel index.family
- The mapping family.coefficient
- The coefficient identifying a curve in the family.noiseReduction
- Pass true
to turn the noise reduction algorithm
on, false
otherwise.getAvailableFamilies()
,
getChannelCurveCoefficient(int)
,
getChannelFamily(int)
,
getChannelNoiseReduction(int)
Family getChannelFamily(int w)
w
- The channel index.getAvailableFamilies()
boolean getChannelNoiseReduction(int w)
true
if the noise reduction algorithm used to map
the pixels intensity values is turned on, false
if the
algorithm is turned off. Each channel has an algorithm associated to it.w
- The channel index.double[] getChannelStats(int w)
double getChannelCurveCoefficient(int w)
w
- The channel index.getChannelFamily(int)
void setChannelWindow(int w, double start, double end)
w
- The channel index.start
- The lower bound of the interval.end
- The upper bound of the interval.double getChannelWindowStart(int w)
w
- The channel index.double getChannelWindowEnd(int w)
w
- The channel index.void setRGBA(int w, int red, int green, int blue, int alpha)
w
- The channel index.red
- The red component. A value between 0 and 255.green
- The green component. A value between 0 and 255.blue
- The blue component. A value between 0 and 255.alpha
- The alpha component. A value between 0 and 255.int[] getRGBA(int w)
w
- The channel index.void setActive(int w, boolean active)
true
, unmaps the channel
otherwise.w
- The channel index.active
- Pass true
to map the channel,
false
otherwise.boolean isActive(int w)
true
if the channel is mapped, false
otherwise.w
- The channel index.@Deprecated void addCodomainMap(CodomainMapContext mapCtx)
mapCtx
- The context to add.updateCodomainMap(CodomainMapContext)
,
removeCodomainMap(CodomainMapContext)
void addCodomainMapToChannel(CodomainMapContext mapCtx, int w)
mapCtx
- The context to add.w
- The channel to add the context to.removeCodomainMapFromChannel(CodomainMapContext, int)
@Deprecated void updateCodomainMap(CodomainMapContext mapCtx)
mapCtx
- The context to update.addCodomainMap(CodomainMapContext)
,
removeCodomainMap(CodomainMapContext)
@Deprecated void removeCodomainMap(CodomainMapContext mapCtx)
mapCtx
- The context to remove.addCodomainMap(CodomainMapContext)
,
updateCodomainMap(CodomainMapContext)
void removeCodomainMapFromChannel(CodomainMapContext mapCtx, int w)
mapCtx
- The context to remove.addCodomainMapToChannel(CodomainMapContext, int)
void updateSettings(RenderingDef settings)
settings
- Rendering definition to copy from. Each sub-object
will be processed as though the specific method was called with
related attributes provided as arguments. The following methods are
called underneath: setModel(RenderingModel)
setDefaultZ(int)
setDefaultT(int)
setQuantumStrategy(int)
setCodomainInterval(int, int)
setActive(int, boolean)
setChannelWindow(int, double, double)
setQuantizationMap(int, Family, double, boolean)
setRGBA(int, int, int, int, int)
setChannelLookupTable(int, String)
null
it will be skipped in its entirety. The
underlying Renderer is not able to handle partial field updates.
Furthermore, ChannelBinding
references that are
null
and indexes in the RenderingDef.WAVERENDERING
array greater than the currently looked up Pixels.SIZEC
will be
skipped.void saveCurrentSettings()
long saveAsNewSettings()
RenderingDef
and loads the object
into the current RenderingEngine
.long resetDefaultSettings(boolean save)
save
- Pass true
to save the settings,
false
otherwise.void setCompressionLevel(float percentage)
percentage
- A percentage compression level from 1.00 (100%) to
0.01 (1%).ValidationException
- if the percentage
is out of
range.float getCompressionLevel()
boolean isPixelsTypeSigned()
true
if the pixels type is signed,
false
otherwise.double getPixelsTypeLowerBound(int w)
w
- The channel index.double getPixelsTypeUpperBound(int w)
w
- The channel index.boolean requiresPixelsPyramid()
java.lang.Object getResolutionDescriptions()
int getResolutionLevels()
int getResolutionLevel()
void setResolutionLevel(int resolutionLevel)
int[] getTileSize()
void setChannelLookupTable(int w, java.lang.String lookup)
java.lang.String getChannelLookupTable(int w)
java.util.List<CodomainMapContext> getCodomainMapContext(int w)
w
- The channel the contexts are associated to.
Version: 5.4.6-ice35-b87
Copyright © 2018 The University of Dundee & Open Microscopy Environment. All Rights Reserved.