#include <qgarlib/LabeledSkeletonImage.H>
Inheritance diagram for qgar::LabeledSkeletonImage:

As described by Gabriella Sanniti di Baja in [Sanniti di Baja, 1994]
Definition at line 74 of file LabeledSkeletonImage.H.
Public Types | |
| typedef unsigned char | value_type |
| Type of the elements stored in the pixel map. | |
| typedef value_type & | reference |
| Reference to qgar::GenImage::value_type. | |
| typedef const value_type & | const_reference |
| Constant reference to qgar::GenImage::value_type. | |
| typedef value_type * | pointer |
| Pointer to qgar::GenImage::value_type. | |
| typedef const value_type * | const_pointer |
| Constant pointer to qgar::GenImage::value_type. | |
Public Member Functions | |
| GenImage () | |
| Default constructor. | |
| GenImage (unsigned int aWidth, unsigned int aHeight) | |
| Initialize with given width and height. | |
| GenImage (unsigned int aWidth, unsigned int aHeight, pointer aPtPixMap) throw (QgarErrorInvalidArg) | |
| Initialize from a pixmap. | |
| GenImage (const GenImage &anImg) | |
| Copy constructor. | |
| GenImage (const GenImage< value_type, OtherCheckPolicy > &anImg) | |
| Conversion of an image of the same type, using policies. | |
| GenImage (const GenImage< U, UCheckPolicy > &anImg) | |
| Initialize from an image with pixels of a type different from T. | |
| GenImage (const GenImage< value_type, OtherCheckPolicy > &anImg, const BoundingBox &aBox, value_type aPixVal=static_cast< value_type >(0)) | |
| Initialize by copying a rectangular area, defined by a bounding box, of a given image. | |
| GenImage (const GenImage< value_type, OtherCheckPolicy > &anImg, unsigned int aXTopLeft, unsigned int aYTopLeft, unsigned int aXBottomRight, unsigned int aYBottomRight, value_type aPixVal=static_cast< value_type >(0)) | |
| Initialize by copying a rectangular area, defined by the coordinates of its top left and bottom right corners, of a given image. | |
| GenImage (AbstractPbmPlusFile &aPbmPlusFile) | |
| Initialize with an image in a PBM+ file. | |
| int | width () const |
| Get the image width. | |
| int | height () const |
| Get the image height. | |
| int | bytesPerPixel () const |
| Get the number of bytes per pixel. | |
| value_type | pixel (unsigned int aX, unsigned int aY) const |
| Get a pixel value. | |
| void | row (unsigned int aRowIdx, pointer aRow) const |
| Get a row of pixels. | |
| void | column (unsigned int aColIdx, pointer aCol) const |
| Get a column of pixels. | |
| pointer | pPixel (unsigned int aRowIdx, unsigned int aColIdx) const |
| Get a pointer on a given pixel of the image. | |
| pointer | pRow (unsigned int aRowIdx) const |
| Get a pointer on a row of pixels. | |
| pointer | pColumn (unsigned int aColIdx) const |
| Get a pointer on a column of pixels. | |
| pointer | pPixMap () const |
| Get the pointer to the pixel map. | |
| void | setPixel (unsigned int aX, unsigned int aY, value_type aPixVal) |
| Set a pixel value. | |
| void | setRow (unsigned int aRowIdx, const_pointer const aRow) |
| Set a given row of pixels. | |
| void | setColumn (unsigned int aColIdx, const_pointer const aCol) |
| Set a given column of pixels. | |
| void | draw (const Segment &aSeg, value_type aPixVal=(value_type) 1) |
| Draw a segment in the pixel map. | |
| GenImage | shallowCopy () |
| Shallow copy: The pixel map of the current image is not duplicated. | |
| GenImage< value_type, GenImage_NoCheck > | operator+ (const GenImage< value_type, OtherCheckPolicy > &anImg) const |
| Same as function qgar::GenImage::plus. | |
| GenImage & | operator+= (const GenImage< value_type, OtherCheckPolicy > &anImg) |
| Same as function qgar::GenImage::plusEqual. | |
| GenImage< value_type, GenImage_NoCheck > | operator- (const GenImage< value_type, OtherCheckPolicy > &anImg) const |
| Same as function qgar::GenImage::minus. | |
| GenImage & | operator-= (const GenImage< value_type, OtherCheckPolicy > &anImg) |
| Same as function qgar::GenImage::minusEqual. | |
| GenImage< value_type, GenImage_NoCheck > | operator * (const GenImage< value_type, OtherCheckPolicy > &anImg) const |
| Same as function qgar::GenImage::times. | |
| GenImage & | operator *= (const GenImage< value_type, OtherCheckPolicy > &anImg) |
| Same as function qgar::GenImage::timesEqual. | |
| GenImage< value_type, GenImage_NoCheck > | plus (const GenImage< value_type, OtherCheckPolicy > &anImg) const |
| Add each pixel of the given image to the corresponding pixel of the current image and store each result in a new pixel map. | |
| GenImage & | plusEqual (const GenImage< value_type, OtherCheckPolicy > &anImg) throw (QgarErrorDomain) |
| Add a given image to the current image. | |
| GenImage< value_type, GenImage_NoCheck > | minus (const GenImage< value_type, OtherCheckPolicy > &anImg) const |
| Subtract each pixel of the given image to the corresponding pixel of the current image and store each result in a new pixel map. | |
| GenImage & | minusEqual (const GenImage< value_type, OtherCheckPolicy > &anImg) throw (QgarErrorDomain) |
| Subtract a given image to the current image. | |
| GenImage< value_type, GenImage_NoCheck > | times (const GenImage< value_type, OtherCheckPolicy > &anImg) const |
| Multiply each pixel of the given image to the corresponding pixel of the current image and store each result in a new pixel map. | |
| GenImage & | timesEqual (const GenImage< value_type, OtherCheckPolicy > &anImg) throw (QgarErrorDomain) |
| Multiply a given image by the current image. | |
| void | save (AbstractPbmPlusFile &aPbmPlusFile) const |
| Store current image into a PBM+ file. | |
| int | borderRows (int aRowIdx) const |
| Mirror border rows for convolutions. | |
| int | borderCols (int aColIdx) const |
| Mirror border columns for convolutions. | |
| void | checkRange (const unsigned char *const aPPixmap, int aWidth, const BoundingBox &aRange) const |
| Check a range. | |
Constructors | |
| LabeledSkeletonImage (const Dist34BlackCCImage &img, int maxPruning=0) | |
| Construct from given (3,4)-distance transform image. | |
Destructor | |
| virtual | ~LabeledSkeletonImage () |
| Virtual destructor. | |
Protected Member Functions | |
| GenImage (unsigned int aBytesCnt, int *aPtRefCnt, unsigned int aWidth, unsigned int aHeight, pointer aPtPixMap) | |
| Initialize from all data. | |
| void | copyBox (const GenImage< value_type, GenImage_NoCheck > &anImg, unsigned int aXTopLeft, unsigned int aYTopLeft, unsigned int aXBottomRight, unsigned int aYBottomRight, value_type aPixVal=static_cast< value_type >(0)) |
| Copy a rectangular area of the given image into the current image. | |
Protected Attributes | |
| unsigned int | _bytesPerPixel |
| Number of bytes per pixel. | |
| int * | _pRefCnt |
| Reference counter. | |
| int | _width |
| Image width. | |
| int | _height |
| Image height. | |
| pointer | _pPixMap |
| Pointer to the pixel map, organized as consecutive rows. | |
The skeleton image | |
| unsigned char * | _pixMap2 |
| The marker map. | |
Private Member Functions | |
Auxiliaries | |
In all subsequent labellings, neighbors are numbered as following: 2 3 4 1 0 5 8 7 6 | |
| void | parallelSkelet () |
| Find parallelwise detectable skeletal pixels. | |
| void | sequentSkelet () |
| Find sequentially detectable skeletal pixels. | |
| void | finalThinning () |
| Hole filling and final thinning. | |
| void | pruning (std::vector< GenPoint< int > > &myEndPoints, int maxPruning) |
| Pruning. | |
| void | removeJaggedness () |
| Remove jaggedness. | |
| void | loadLabeledNeighbors (unsigned char *p, unsigned char *n) |
| Load the right labels for a neighborhood. | |
| void | loadBinaryNeighbors (unsigned char *p, unsigned char *n) |
| Load the binary image of a neighborhood. | |
| void | loadSuitXBinary (unsigned char suitbin[], unsigned char n[]) |
| Load suitable X binary neighbors. | |
| void | loadSuitCBinary (unsigned char suitbin[], unsigned char n[]) |
| Load suitable C binary neighbors. | |
| int | connexityCnt (unsigned char n[]) |
| Number of 8-connected components in a neighborhood. | |
| int | crossingCnt (unsigned char n[]) |
| Number of 4-connected components in a neighborhood. | |
| int | degree (unsigned char *p) |
| Degree of a point: Its number of marked neighbors. | |
| int | oddEvenOddLab3 (unsigned char n[], int debut) |
| Triple consecutive neighbors all labeled 3 (after changes all labeled 1). | |
| void | gradient (unsigned char n[], float grad[]) |
| Gradient in a 3x3 neighborhood. | |
| int | maxGradientPos1 (unsigned char *p, float grad[]) |
| Position of maximum gradient. | |
| int | maxGradientPos2 (float grad[], unsigned char *p, int indmax) |
| Find, if any, second position with same maximum gradient. | |
| void | unitWidth (unsigned char *p, unsigned char lab[]) |
| Reduce to unit width. | |
|
|
Constant pointer to qgar::GenImage::value_type.
Reimplemented in qgar::ContrastEnhancedImage, qgar::DilatedBinaryImage, qgar::DilatedImage, qgar::Dist34BlackCCImage, qgar::Dist8cBlackCCImage, qgar::ErodedBinaryImage, qgar::GeodesicRecEroBinaryImage, qgar::HysteresisBinaryImage, qgar::LinDilatedImage, qgar::RegionalMaxBinaryImage, qgar::RegionalMinImage, qgar::ThresBinaryImage, qgar::TTBinaryImage, and qgar::UltimateErodedBinaryImage. Definition at line 422 of file GenImage.H. |
|
|
Constant reference to qgar::GenImage::value_type.
Reimplemented in qgar::ContrastEnhancedImage, qgar::DilatedBinaryImage, qgar::DilatedImage, qgar::Dist34BlackCCImage, qgar::Dist8cBlackCCImage, qgar::ErodedBinaryImage, qgar::GeodesicRecEroBinaryImage, qgar::HysteresisBinaryImage, qgar::LinDilatedImage, qgar::RegionalMaxBinaryImage, qgar::RegionalMinImage, qgar::ThresBinaryImage, qgar::TTBinaryImage, and qgar::UltimateErodedBinaryImage. Definition at line 412 of file GenImage.H. |
|
|
|
|
Type of the elements stored in the pixel map.
Reimplemented in qgar::ContrastEnhancedImage, qgar::DilatedBinaryImage, qgar::DilatedImage, qgar::Dist34BlackCCImage, qgar::Dist8cBlackCCImage, qgar::ErodedBinaryImage, qgar::GeodesicRecEroBinaryImage, qgar::HysteresisBinaryImage, qgar::LinDilatedImage, qgar::RegionalMaxBinaryImage, qgar::RegionalMinImage, qgar::ThresBinaryImage, qgar::TTBinaryImage, and qgar::UltimateErodedBinaryImage. Definition at line 402 of file GenImage.H. |
|
||||||||||||
|
Construct from given (3,4)-distance transform image.
Definition at line 63 of file LabeledSkeletonImage.C. References qgar::GenImage< unsigned char >::_height, _pixMap2, qgar::GenImage< unsigned char >::_pPixMap, qgar::GenImage< unsigned char >::_width, crossingCnt(), finalThinning(), qgar::GenImage< T, CheckPolicy >::height(), loadBinaryNeighbors(), parallelSkelet(), pruning(), removeJaggedness(), sequentSkelet(), and qgar::GenImage< T, CheckPolicy >::width(). |
|
|
Virtual destructor.
Definition at line 189 of file LabeledSkeletonImage.C. References _pixMap2. |
|
|
Mirror border columns for convolutions.
|
|
|
Mirror border rows for convolutions.
|
|
|
Get the number of bytes per pixel.
|
|
||||||||||||||||
|
Check a range.
Definition at line 110 of file GenImage.H. |
|
||||||||||||
|
Get a column of pixels.
|
|
|
Number of 8-connected components in a neighborhood.
Definition at line 864 of file LabeledSkeletonImage.C. Referenced by parallelSkelet(). |
|
||||||||||||||||||||||||||||
|
Copy a rectangular area of the given image into the current image. The sides of the rectangle are parallel to the coordinate axis.
|
|
|
Number of 4-connected components in a neighborhood.
Definition at line 884 of file LabeledSkeletonImage.C. Referenced by LabeledSkeletonImage(), and parallelSkelet(). |
|
|
Degree of a point: Its number of marked neighbors.
Definition at line 903 of file LabeledSkeletonImage.C. References qgar::GenImage< unsigned char >::_width. Referenced by removeJaggedness(). |
|
||||||||||||
|
Draw a segment in the pixel map. The segment pixels are set using Bresenham's algorithm. See W.M. Newman and R.F. Sproull, Principles of Interactive Computer Graphics, pp. 25-26.
|
|
|
Hole filling and final thinning.
Definition at line 412 of file LabeledSkeletonImage.C. References qgar::GenImage< unsigned char >::_height, _pixMap2, qgar::GenImage< unsigned char >::_width, loadLabeledNeighbors(), and unitWidth(). Referenced by LabeledSkeletonImage(). |
|
||||||||||||||||||||||||
|
Initialize from all data.
|
|
|
Initialize with an image in a PBM+ file. The given PBM+ file is opened (in READ ONLY mode) at the call, and closed before returning.
|
|
||||||||||||||||||||||||||||
|
Initialize by copying a rectangular area, defined by the coordinates of its top left and bottom right corners, of a given image. The rectangle sides are parallel to the coordinate axis.
|
|
||||||||||||||||
|
Initialize by copying a rectangular area, defined by a bounding box, of a given image. The rectangle sides are parallel to the coordinate axis.
|
|
|
Initialize from an image with pixels of a type different from T.
|
|
|
Conversion of an image of the same type, using policies.
|
|
|
Copy constructor. Perform a deep copy: The pixel map of the source image is duplicated.
|
|
||||||||||||||||
|
Initialize from a pixmap.
|
|
||||||||||||
|
Initialize with given width and height.
|
|
|
Default constructor. Set 0 to width, to height, to pointer to pixel map, and to reference counter. |
|
||||||||||||
|
Gradient in a 3x3 neighborhood.
Definition at line 960 of file LabeledSkeletonImage.C. Referenced by sequentSkelet(). |
|
|
Get the image height.
Referenced by qgar::GeodesicRecEroBinaryImage::perform(). |
|
||||||||||||
|
Load the binary image of a neighborhood.
Definition at line 793 of file LabeledSkeletonImage.C. References qgar::GenImage< unsigned char >::_width. Referenced by LabeledSkeletonImage(), and removeJaggedness(). |
|
||||||||||||
|
Load the right labels for a neighborhood.
Definition at line 764 of file LabeledSkeletonImage.C. References qgar::GenImage< unsigned char >::_width. Referenced by finalThinning(), parallelSkelet(), and sequentSkelet(). |
|
||||||||||||
|
Load suitable C binary neighbors.
Definition at line 843 of file LabeledSkeletonImage.C. Referenced by parallelSkelet(). |
|
||||||||||||
|
Load suitable X binary neighbors.
Definition at line 822 of file LabeledSkeletonImage.C. Referenced by parallelSkelet(). |
|
||||||||||||
|
Position of maximum gradient.
Definition at line 979 of file LabeledSkeletonImage.C. Referenced by sequentSkelet(). |
|
||||||||||||||||
|
Find, if any, second position with same maximum gradient.
Definition at line 1002 of file LabeledSkeletonImage.C. Referenced by sequentSkelet(). |
|
|
Subtract each pixel of the given image to the corresponding pixel of the current image and store each result in a new pixel map.
|
|
|
Subtract a given image to the current image.
|
|
||||||||||||
|
Triple consecutive neighbors all labeled 3 (after changes all labeled 1).
Definition at line 949 of file LabeledSkeletonImage.C. Referenced by parallelSkelet(). |
|
|
Same as function qgar::GenImage::times.
|
|
|
Same as function qgar::GenImage::timesEqual.
|
|
|
Same as function qgar::GenImage::plus.
|
|
|
Same as function qgar::GenImage::plusEqual.
|
|
|
Same as function qgar::GenImage::minus.
|
|
|
Same as function qgar::GenImage::minusEqual.
|
|
|
Find parallelwise detectable skeletal pixels.
Definition at line 207 of file LabeledSkeletonImage.C. References qgar::GenImage< unsigned char >::_height, _pixMap2, qgar::GenImage< unsigned char >::_pPixMap, qgar::GenImage< unsigned char >::_width, connexityCnt(), crossingCnt(), loadLabeledNeighbors(), loadSuitCBinary(), loadSuitXBinary(), and oddEvenOddLab3(). Referenced by LabeledSkeletonImage(). |
|
|
Get a pointer on a column of pixels.
|
|
||||||||||||
|
Get a pixel value.
|
|
|
Add each pixel of the given image to the corresponding pixel of the current image and store each result in a new pixel map.
|
|
|
Add a given image to the current image. Add each pixel of the given image to the corresponding pixel of the current image and store each result in the pixel map of the current image.
|
|
||||||||||||
|
Get a pointer on a given pixel of the image.
|
|
|
Get the pointer to the pixel map.
Referenced by qgar::ThresBinaryImage::ThresBinaryImage(), and qgar::TTBinaryImage::TTBinaryImage(). |
|
|
Get a pointer on a row of pixels.
|
|
||||||||||||
|
Pruning.
Referenced by LabeledSkeletonImage(). |
|
|
Remove jaggedness.
Definition at line 716 of file LabeledSkeletonImage.C. References qgar::GenImage< unsigned char >::_height, _pixMap2, qgar::GenImage< unsigned char >::_pPixMap, qgar::GenImage< unsigned char >::_width, degree(), and loadBinaryNeighbors(). Referenced by LabeledSkeletonImage(). |
|
||||||||||||
|
Get a row of pixels.
|
|
|
Store current image into a PBM+ file. The given PBM+ file is opened (in WRITE ONLY mode) at the call, and closed before returning.
|
|
|
Find sequentially detectable skeletal pixels.
Definition at line 303 of file LabeledSkeletonImage.C. References qgar::GenImage< unsigned char >::_height, _pixMap2, qgar::GenImage< unsigned char >::_pPixMap, qgar::GenImage< unsigned char >::_width, gradient(), loadLabeledNeighbors(), maxGradientPos1(), and maxGradientPos2(). Referenced by LabeledSkeletonImage(). |
|
||||||||||||
|
Set a given column of pixels.
|
|
||||||||||||||||
|
Set a pixel value.
|
|
||||||||||||
|
Set a given row of pixels.
|
|
|
Shallow copy: The pixel map of the current image is not duplicated.
|
|
|
Multiply each pixel of the given image to the corresponding pixel of the current image and store each result in a new pixel map.
|
|
|
Multiply a given image by the current image. Multiply each pixel of the given image by the corresponding pixel of the current image and store each result in the pixel map of the current image.
|
|
||||||||||||
|
Reduce to unit width. Erase marker from any marked pixel satisfying both:
Definition at line 1034 of file LabeledSkeletonImage.C. Referenced by finalThinning(). |
|
|
Get the image width.
Referenced by qgar::GeodesicRecEroBinaryImage::perform(). |
|
|
Number of bytes per pixel.
Definition at line 1096 of file GenImage.H. |
|
|
Image height.
Definition at line 1114 of file GenImage.H. Referenced by qgar::Dist34BlackCCImage::Dist34BlackCCImage(), qgar::Dist8cBlackCCImage::Dist8cBlackCCImage(), finalThinning(), LabeledSkeletonImage(), parallelSkelet(), removeJaggedness(), sequentSkelet(), and qgar::ThresBinaryImage::ThresBinaryImage(). |
|
|
The marker map.
Definition at line 124 of file LabeledSkeletonImage.H. Referenced by finalThinning(), LabeledSkeletonImage(), parallelSkelet(), removeJaggedness(), sequentSkelet(), and ~LabeledSkeletonImage(). |
|
|
Pointer to the pixel map, organized as consecutive rows.
Definition at line 1120 of file GenImage.H. Referenced by qgar::Dist34BlackCCImage::Dist34BlackCCImage(), qgar::Dist8cBlackCCImage::Dist8cBlackCCImage(), LabeledSkeletonImage(), parallelSkelet(), removeJaggedness(), and sequentSkelet(). |
|
|
Reference counter. Its value represent the number of other images with which the current image shares its pixel map. Definition at line 1104 of file GenImage.H. |
|
|
Image width.
Definition at line 1109 of file GenImage.H. Referenced by degree(), qgar::Dist34BlackCCImage::Dist34BlackCCImage(), qgar::Dist8cBlackCCImage::Dist8cBlackCCImage(), finalThinning(), LabeledSkeletonImage(), loadBinaryNeighbors(), loadLabeledNeighbors(), parallelSkelet(), removeJaggedness(), sequentSkelet(), and qgar::ThresBinaryImage::ThresBinaryImage(). |