OSSIM - Open Source Software Image Map
Version 1.9.0 (20180803)
|
Class for computing a mask from an input image source and writing the mask file to disk. More...
#include <ossimBitMaskWriter.h>
Public Member Functions | |
ossimBitMaskWriter () | |
Default constructor typically used when reading a mask from disk. More... | |
~ossimBitMaskWriter () | |
void | setBogusPixel (double pixel_value) |
Sets the NULL pixel value to consider when computing mask: More... | |
void | setBogusPixelRange (double min, double max) |
Sets the range of pixels (inclusive) to be regarded as NULL pixels when computing mask. More... | |
void | setStartingResLevel (ossim_uint32 res_level) |
Sets the starting resolution level for the mask. More... | |
void | generateMask (ossimRefPtr< ossimImageData > tile, ossim_uint32 rLevel) |
Given a source's tile, derives the alpha mask and saves it in buffer for later writing to disk. More... | |
bool | buildOverviews (ossim_uint32 total_num_rlevels) |
For imagery that already has overviews built, but with artifact edge pixels (such as JP2- compressed data), it is preferred to build the mask overviews directly from the R0 mask. More... | |
virtual bool | loadState (const ossimKeywordlist &spec, const char *prefix=0) |
Computes and writes the mask file according to the specification in the KWL. More... | |
virtual bool | isOpen () const |
virtual bool | open () |
virtual void | close () |
Writes the mask file to path specified. Returns TRUE if successful. More... | |
virtual bool | canConnectMyInputTo (ossim_int32 myInputIndex, const ossimConnectableObject *object) const |
required to be overriden by derived classes More... | |
virtual ossim_int32 | connectMyInputTo (ossimConnectableObject *inputObject, bool makeOutputConnection=true, bool createEventFlag=true) |
Will try to connect this objects input to the passed in object. More... | |
![]() | |
ossimOutputSource (ossimObject *owner=NULL) | |
ossimOutputSource (ossimObject *owner, ossim_uint32 inputListSize, ossim_uint32 outputListSize, bool inputListIsFixedFlag=true, bool outputListIsFixedFlag=true) | |
virtual | ~ossimOutputSource () |
virtual bool | open (const ossimString &outputName) |
virtual void | setOutputName (const ossimString &outputName) |
virtual const ossimString & | getOutputName () |
virtual bool | saveState (ossimKeywordlist &kwl, const char *prefix=0) const |
![]() | |
ossimSource (ossimObject *owner=0) | |
ossimSource (ossimObject *owner, ossim_uint32 inputListSize, ossim_uint32 outputListSize, bool inputListIsFixedFlag=true, bool outputListIsFixedFlag=true) | |
virtual | ~ossimSource () |
virtual bool | isSourceEnabled () const |
virtual void | enableSource () |
virtual void | disableSource () |
virtual bool | getEnableFlag () const |
virtual void | setEnableFlag (bool flag) |
virtual bool | isInitialized () const |
virtual void | setInitializedFlag (bool flag) |
virtual void | initialize () |
virtual void | setProperty (ossimRefPtr< ossimProperty > property) |
virtual ossimRefPtr< ossimProperty > | getProperty (const ossimString &name) const |
virtual void | getPropertyNames (std::vector< ossimString > &propertyNames) const |
virtual std::ostream & | print (std::ostream &out) const |
Outputs theErrorStatus as an ossimErrorCode and an ossimString. More... | |
![]() | |
ossimConnectableObject (ossimObject *owner=0) | |
Base constructor of this object. More... | |
ossimConnectableObject (ossimObject *owner, ossim_int32 inputListSize, ossim_int32 outputListSize, bool inputListIsFixedFlag=true, bool outputListIsFixedFlag=true) | |
virtual | ~ossimConnectableObject () |
void | setId (const ossimId &id) |
All connectable objects will have id's. More... | |
const ossimId & | getId () const |
Will allow us to get this object's id. More... | |
const ossimObject * | getOwner () const |
Fetches the current owner, most likely a container but not limited to one. More... | |
virtual void | changeOwner (ossimObject *owner) |
Permits changing the object's owner. More... | |
virtual void | setDescription (const ossimString &description) |
virtual ossimString | getDescription () const |
virtual bool | isConnected (ossimConnectableObjectDirectionType direction=CONNECTABLE_DIRECTION_INPUT) const |
will check the direction specified to see if all slots are full. More... | |
OSSIM_DEPRECATE_METHOD (virtual ossimConnectableObject *findConnectableObject(const ossimId &id)) | |
OSSIM_DEPRECATE_METHOD (virtual ossimConnectableObject *findObjectOfType(RTTItypeid typeId, ossimConnectableObjectDirectionType directionType, bool recurse=true)) | |
OSSIM_DEPRECATE_METHOD (virtual ossimConnectableObject *findObjectOfType(const ossimString &obj, ossimConnectableObjectDirectionType directionType, bool recurse=true)) | |
OSSIM_DEPRECATE_METHOD (virtual ossimConnectableObject *findInputObjectOfType(const ossimString &className)) | |
virtual ossim_int32 | findInputIndex (const ossimConnectableObject *object) |
Return a valid index of the input list if the passed in object is found else return -1. More... | |
virtual ossim_int32 | findInputIndex (const ossimId &id) |
Return a valid index of the input list if the passed id is found else return -1. More... | |
virtual ossim_int32 | findOutputIndex (const ossimConnectableObject *object) |
Return a valid index of the output list if the passed in object is found else return -1. More... | |
virtual ossim_int32 | findOutputIndex (const ossimId &id) |
Return a valid index of the output list if the passed in object is found else return -1. More... | |
virtual ossim_int32 | getMyInputIndexToConnectTo (ossimConnectableObject *object) const |
Should return the first available index to connect to. More... | |
virtual ossim_int32 | getMyOutputIndexToConnectTo (ossimConnectableObject *object) const |
Should return the first available index to connect to. More... | |
virtual bool | canConnectMyOutputTo (ossim_int32 myOutputIndex, const ossimConnectableObject *object) const |
default implementation is to allow anyone to connect to us. More... | |
virtual void | disconnect (ossimConnectableObject *object=0) |
Will disconnect the object passed in. More... | |
virtual void | disconnect (const ossimId &id) |
Will disconnect the object passed in. More... | |
virtual ossimRefPtr< ossimConnectableObject > | disconnectMyInput (ossim_int32 inputIndex, bool disconnectOutputFlag=true, bool createEventFlag=true) |
Will disconnect the object at the given input index and generate a connection event. More... | |
virtual void | disconnectMyInput (ossimConnectableObject *input, bool disconnectOutputFlag=true, bool createEventFlag=true) |
Finds the index of the passed in input and calls disconnectMyInput(inputIndex, disconnectOutputFlag, createEventFlag);. More... | |
virtual void | disconnectMyInputs (ConnectableObjectList &inputList, bool disconnectOutputFlag=true, bool createEventFlag=true) |
virtual ossimRefPtr< ossimConnectableObject > | disconnectMyOutput (ossim_int32 outputIndex, bool disconnectInputFlag=true, bool createEventFlag=true) |
Will disconnect the object at the given output index and generate a connection event. More... | |
virtual void | disconnectMyOutput (ossimConnectableObject *output, bool disconnectInputFlag=true, bool createEventFlag=true) |
Will disconnect the output object. More... | |
virtual void | disconnectMyOutputs (ConnectableObjectList &outputList, bool disconnectOutputFlag=true, bool createEventFlag=true) |
virtual void | disconnectAllInputs () |
Will disconnect all of the input objects. More... | |
virtual void | disconnectAllOutputs () |
Will disconnect all of the output objects. More... | |
virtual ossim_int32 | connectMyInputTo (ossim_int32 inputIndex, ossimConnectableObject *inputObject, bool makeOutputConnection=true, bool createEventFlag=true) |
Will connect the specified input to the passed in object. More... | |
virtual bool | connectMyInputTo (ConnectableObjectList &inputList, bool makeOutputConnection=true, bool createEventFlag=true) |
virtual ossim_int32 | connectMyOutputTo (ossimConnectableObject *outputObject, bool makeInputConnection=true, bool createEventFlag=true) |
Will try to connect this objects output to the passed in object. More... | |
virtual bool | connectMyOutputTo (ConnectableObjectList &outputList, bool makeInputConnection=true, bool createEventFlag=true) |
virtual bool | connectInputList (ConnectableObjectList &inputList) |
Will disconnect itself from all inputs and reset to the passed in input list. More... | |
virtual bool | connectOutputList (ConnectableObjectList &outputList) |
Will disconnect itself from all outputs and reset to the passed in output list. More... | |
virtual ossim_uint32 | getNumberOfInputs () const |
Returns the number of input objects. More... | |
virtual ossim_uint32 | getNumberOfOutputs () const |
Return the number of output objects. More... | |
ossimConnectableObject * | getInput (ossim_uint32 index=0) |
returns the object at the specified index. More... | |
const ossimConnectableObject * | getInput (ossim_uint32 index=0) const |
returns the object at the specified index. More... | |
ossimConnectableObject * | getOutput (ossim_uint32 index=0) |
returns the object at the specified index. More... | |
const ossimConnectableObject * | getOutput (ossim_uint32 index=0) const |
returns the object at the specified index. More... | |
virtual void | setNumberOfInputs (ossim_int32 numberOfInputs) |
Will set the number of inputs. More... | |
virtual bool | getInputListIsFixedFlag () const |
virtual bool | getOutputListIsFixedFlag () const |
virtual void | setNumberOfOutputs (ossim_int32 numberOfInputs) |
Will set the number of outputs. More... | |
const ConnectableObjectList & | getInputList () const |
const ConnectableObjectList & | getOutputList () const |
ConnectableObjectList & | getInputList () |
ConnectableObjectList & | getOutputList () |
OSSIM_DEPRECATE_METHOD (virtual void findAllObjectsOfType(ConnectableObjectList &result, const RTTItypeid &typeInfo, bool recurse=true)) | |
OSSIM_DEPRECATE_METHOD (virtual void findAllObjectsOfType(ConnectableObjectList &result, const ossimString &className, bool recurse=true)) | |
virtual void | propagateEventToOutputs (ossimEvent &event) |
virtual void | propagateEventToInputs (ossimEvent &event) |
virtual void | setProperty (const ossimString &name, const ossimString &value) |
virtual ossim_uint32 | saveStateOfAllInputs (ossimKeywordlist &kwl, bool saveThisStateFlag=true, ossim_uint32 objectIndex=1, const char *prefix=0) const |
Save the state of all inputs to a keyword list. More... | |
virtual bool | fillContainer (ossimConnectableContainer &container) |
Inserts this object and all of its children and inputs into the container provided. More... | |
bool | moveInputUp (const ossimId &id) |
Moves the input connection matching id up one in the connection list. More... | |
bool | moveInputDown (const ossimId &id) |
Moves the input connection matching id down one in the connection list. More... | |
bool | moveInputToTop (const ossimId &id) |
Moves the input connection matching id to the top of the connection list. More... | |
bool | moveInputToBottom (const ossimId &id) |
Moves the input connection matching id to the bottom of the connection list. More... | |
virtual void | accept (ossimVisitor &visitor) |
We will add a visitor interface for all connectable objects. More... | |
![]() | |
ossimObject () | |
virtual | ~ossimObject () |
virtual ossimObject * | dup () const |
virtual ossimString | getShortName () const |
virtual ossimString | getLongName () const |
virtual ossimString | getClassName () const |
virtual RTTItypeid | getType () const |
virtual bool | canCastTo (ossimObject *obj) const |
virtual bool | canCastTo (const RTTItypeid &id) const |
virtual bool | canCastTo (const ossimString &parentClassName) const |
virtual bool | isEqualTo (const ossimObject &obj, ossimCompareType compareType=OSSIM_COMPARE_FULL) const |
![]() | |
ossimReferenced () | |
ossimReferenced (const ossimReferenced &) | |
ossimReferenced & | operator= (const ossimReferenced &) |
void | ref () const |
increment the reference count by one, indicating that this object has another pointer which is referencing it. More... | |
void | unref () const |
decrement the reference count by one, indicating that a pointer to this object is referencing it. More... | |
void | unref_nodelete () const |
decrement the reference count by one, indicating that a pointer to this object is referencing it. More... | |
int | referenceCount () const |
![]() | |
ossimListenerManager () | |
virtual | ~ossimListenerManager () |
virtual void | fireEvent (ossimEvent &event) |
virtual bool | addListener (ossimListener *listener) |
virtual bool | removeListener (ossimListener *listener) |
virtual bool | findListener (ossimListener *listener) |
![]() | |
ossimPropertyInterface () | |
virtual | ~ossimPropertyInterface () |
virtual ossimString | getPropertyValueAsString (const ossimString &name) const |
void | getPropertyList (std::vector< ossimRefPtr< ossimProperty > > &propertyList) const |
void | setProperties (std::vector< ossimRefPtr< ossimProperty > > &propertyList) |
![]() | |
ossimErrorStatusInterface () | |
virtual | ~ossimErrorStatusInterface () |
virtual ossimErrorCode | getErrorStatus () const |
virtual ossimString | getErrorStatusString () const |
virtual void | setErrorStatus (ossimErrorCode error_status) const |
virtual void | setErrorStatus () const |
virtual void | clearErrorStatus () const |
bool | hasError () const |
Static Public Attributes | |
static const char * | BM_STARTING_RLEVEL_KW = "starting_rlevel" |
static const char * | MASK_FILE_MAGIC_NUMBER = "OSSIM_BIT_MASK" |
Protected Member Functions | |
void | initializeFlipper () |
Initializes the flipper (used for identifying pixels for masking) to default values. More... | |
void | reset () |
Deletes allocated buffers and resets all values to defaults. More... | |
ossimIpt | computeImageSize (ossim_uint32 rlevel, ossimImageData *tile) const |
Since overviews may not yet exist when the mask is being written, we must compute the size of the source image based on the original R0 image size. More... | |
![]() | |
ossimSource (const ossimSource &rhs) | |
const ossimSource & | operator= (const ossimSource &rhs) |
![]() | |
ossimConnectableObject * | findObjectOfType (ConnectableObjectList *connectableList, ossimVisitor &visitor) |
![]() | |
virtual | ~ossimReferenced () |
![]() | |
ossimListenerManager (const ossimListenerManager &rhs) | |
Friends | |
class | ossimBitMaskTileSource |
Additional Inherited Members | |
![]() | |
enum | ossimConnectableObjectDirectionType { CONNECTABLE_DIRECTION_NONE = 0, CONNECTABLE_DIRECTION_INPUT = 1, CONNECTABLE_DIRECTION_OUTPUT = 2 } |
typedef std::vector< ossimRefPtr< ossimConnectableObject > > | ConnectableObjectList |
Class for computing a mask from an input image source and writing the mask file to disk.
This class takes care of all details associated with computing, writing and reading the custom, bit-compressed OSSIM bit mask file format.
When the developer needs to mask an image, the following needs to be done:
Creating the Mask:
Using the Mask:
The OSSIM bit mask file contains a small header that consists of: magic number, starting res level, number of res levels num columns at starting res level, num rows at starting res level, num columns at 2nd res level, num rows at 2nd res level, etc., for all res levels <space> <compressed binary="" mask="" data>="">
The number of rows and columns represents the number of bytes in the mask, with each byte containing 8 alpha mask bits representing 8 pixels in the original image.
The mask is computed here using the specified values for bogus pixels. If a pixel in the source image is in the range of bogus values, a mask of 0 is assigned to that pixel, otherwise 1.
Definition at line 69 of file ossimBitMaskWriter.h.
ossimBitMaskWriter::ossimBitMaskWriter | ( | ) |
Default constructor typically used when reading a mask from disk.
Definition at line 29 of file ossimBitMaskWriter.cpp.
ossimBitMaskWriter::~ossimBitMaskWriter | ( | ) |
Definition at line 39 of file ossimBitMaskWriter.cpp.
References close(), and isOpen().
bool ossimBitMaskWriter::buildOverviews | ( | ossim_uint32 | total_num_rlevels | ) |
For imagery that already has overviews built, but with artifact edge pixels (such as JP2- compressed data), it is preferred to build the mask overviews directly from the R0 mask.
This method will build the remaining number of R-levels from the last defined mask buffer such that the total number of R-levels (counting R0) are represented. Returns TRUE if successful.
Definition at line 387 of file ossimBitMaskWriter.cpp.
References m_buffers, m_bufferSizes, m_startingResLevel, ossimIpt::x, x, ossimIpt::y, and y.
|
virtual |
required to be overriden by derived classes
Implements ossimConnectableObject.
Definition at line 285 of file ossimBitMaskWriter.cpp.
|
virtual |
Writes the mask file to path specified. Returns TRUE if successful.
Implements ossimOutputSource.
Definition at line 188 of file ossimBitMaskWriter.cpp.
References ossimString::chars(), ossimString::empty(), m_buffers, m_bufferSizes, m_startingResLevel, MASK_FILE_MAGIC_NUMBER, ossimNotify(), ossimNotifyLevel_WARN, reset(), ossimOutputSource::theOutputName, x, and y.
Referenced by ~ossimBitMaskWriter().
|
protected |
Since overviews may not yet exist when the mask is being written, we must compute the size of the source image based on the original R0 image size.
Since overviews may not yet exist when the mask is being written, we must compute the size of the mask buffer based on the original R0 image size.
Definition at line 361 of file ossimBitMaskWriter.cpp.
References ossimImageData::getHeight(), ossimImageData::getWidth(), m_imageSize, ossimIpt::x, and ossimIpt::y.
Referenced by generateMask().
|
virtual |
Will try to connect this objects input to the passed in object.
It will return a valid index >= 0 if successful. Will use the getMyInputIndexToConnectTo method to implement the connection
Reimplemented from ossimConnectableObject.
Definition at line 295 of file ossimBitMaskWriter.cpp.
References ossimConnectableObject::accept(), ossimConnectableObject::connectMyInputTo(), ossimString::contains(), ossimConnectableObject::disconnectAllInputs(), ossimString::empty(), ossimRefPtr< T >::get(), ossimImageHandler::getBoundingRect(), ossimImageHandler::getFilename(), ossimCollectionVisitor::getObject(), initializeFlipper(), m_flipper, m_imageSize, ossimFilename::noExtension(), ossimFilename::setExtension(), ossimIrect::size(), ossimOutputSource::theOutputName, ossimRefPtr< T >::valid(), ossimVisitor::VISIT_CHILDREN, and ossimVisitor::VISIT_INPUTS.
Referenced by ossimOverviewSequencer::setImageHandler().
void ossimBitMaskWriter::generateMask | ( | ossimRefPtr< ossimImageData > | tile, |
ossim_uint32 | rLevel | ||
) |
Given a source's tile, derives the alpha mask and saves it in buffer for later writing to disk.
Definition at line 105 of file ossimBitMaskWriter.cpp.
References computeImageSize(), ossimRefPtr< T >::get(), ossimImageData::getImageRectangle(), ossimPixelFlipper::getTile(), ossimPixelFlipper::initialize(), initializeFlipper(), ossimImageData::isNull(), m_buffers, m_bufferSizes, m_flipper, m_memoryImage, m_startingResLevel, ossimMemoryImageSource::setImage(), ossimRefPtr< T >::valid(), ossimIpt::x, x, ossimIpt::y, and y.
|
protected |
Initializes the flipper (used for identifying pixels for masking) to default values.
Definition at line 259 of file ossimBitMaskWriter.cpp.
References ossimConnectableObject::connectMyInputTo(), ossimRefPtr< T >::get(), m_flipper, m_memoryImage, ossimPixelFlipper::REPLACE_ONLY_FULL_TARGETS, ossimPixelFlipper::setReplacementMode(), ossimPixelFlipper::setReplacementValue(), ossimPixelFlipper::setTargetValue(), ossimConnectableObject::theInputObjectList, and ossimRefPtr< T >::valid().
Referenced by connectMyInputTo(), generateMask(), loadState(), setBogusPixel(), and setBogusPixelRange().
|
virtual |
Implements ossimOutputSource.
Definition at line 49 of file ossimBitMaskWriter.cpp.
References m_buffers.
Referenced by ~ossimBitMaskWriter().
|
virtual |
Computes and writes the mask file according to the specification in the KWL.
Constructor accepts keywordlist with all info necessary to compute a mask.
Returns TRUE if successful.
The caller will still need to call writeMask().
Reimplemented from ossimOutputSource.
Definition at line 234 of file ossimBitMaskWriter.cpp.
References BM_STARTING_RLEVEL_KW, ossimString::empty(), ossimKeywordlist::find(), initializeFlipper(), ossimPixelFlipper::loadState(), m_flipper, m_startingResLevel, ossimKeywordNames::OUTPUT_FILE_KW, ossimOutputSource::theOutputName, and ossimString::toUInt32().
|
virtual |
Allows a generic interface to open a consumer for writing. If you are a display writer then you would probably show the window or init the device context for writing.
Implements ossimOutputSource.
Definition at line 57 of file ossimBitMaskWriter.cpp.
|
protected |
Deletes allocated buffers and resets all values to defaults.
Definition at line 67 of file ossimBitMaskWriter.cpp.
References m_buffers, and m_bufferSizes.
Referenced by close().
void ossimBitMaskWriter::setBogusPixel | ( | double | pixel_value | ) |
Sets the NULL pixel value to consider when computing mask:
Definition at line 83 of file ossimBitMaskWriter.cpp.
References initializeFlipper(), m_flipper, ossimPixelFlipper::setTargetValue(), and ossimRefPtr< T >::valid().
void ossimBitMaskWriter::setBogusPixelRange | ( | double | min, |
double | max | ||
) |
Sets the range of pixels (inclusive) to be regarded as NULL pixels when computing mask.
Definition at line 94 of file ossimBitMaskWriter.cpp.
References initializeFlipper(), m_flipper, max, min, ossimPixelFlipper::setTargetRange(), and ossimRefPtr< T >::valid().
|
inline |
Sets the starting resolution level for the mask.
Definition at line 87 of file ossimBitMaskWriter.h.
|
friend |
Definition at line 114 of file ossimBitMaskWriter.h.
|
static |
Definition at line 72 of file ossimBitMaskWriter.h.
Referenced by loadState().
|
protected |
Definition at line 128 of file ossimBitMaskWriter.h.
Referenced by buildOverviews(), close(), generateMask(), ossimBitMaskTileSource::getTile(), isOpen(), ossimBitMaskTileSource::isValidRLevel(), and reset().
|
protected |
Definition at line 129 of file ossimBitMaskWriter.h.
Referenced by buildOverviews(), close(), generateMask(), ossimBitMaskTileSource::getNumberOfLines(), ossimBitMaskTileSource::getNumberOfSamples(), and reset().
|
protected |
Definition at line 126 of file ossimBitMaskWriter.h.
Referenced by connectMyInputTo(), generateMask(), initializeFlipper(), loadState(), setBogusPixel(), and setBogusPixelRange().
|
protected |
Size of full res source image.
Definition at line 131 of file ossimBitMaskWriter.h.
Referenced by computeImageSize(), and connectMyInputTo().
|
protected |
Definition at line 127 of file ossimBitMaskWriter.h.
Referenced by generateMask(), and initializeFlipper().
|
protected |
Definition at line 130 of file ossimBitMaskWriter.h.
Referenced by buildOverviews(), close(), generateMask(), loadState(), and ossimBitMaskTileSource::setAssociatedMaskWriter().
|
static |
Definition at line 73 of file ossimBitMaskWriter.h.
Referenced by close(), and ossimBitMaskTileSource::open().