Detects connected components in an image. More...
#include <ConnectedComponentAnalyzer.h>
Classes | |
| struct | IntensitySimilarity |
| a similarity criterion based on intensity differences More... | |
| struct | MaskVadility |
| validity function for range image segmentation More... | |
Public Member Functions | |
| ConnectedComponentAnalyzer () | |
| unsigned | getImageHeight () |
| unsigned | getImageWidth () |
| unsigned * | getLastLabelImage () |
| std::vector< ConnectedComponent > | segment (unsigned char *binImage, unsigned width, unsigned height, unsigned minSegmentSize=1, float minOccupiedArea=0.0, unsigned expandSegmentSize=0) |
| std::vector< ConnectedComponent > | segment (const float *floatImage, unsigned width, unsigned height, float maxDistance, unsigned minSegmentSize=1, float minOccupiedArea=0.0, unsigned expandSegmentSize=0) |
| std::vector< ConnectedComponent > | segment (const float *floatImage, const unsigned char *mask, unsigned width, unsigned height, float maxDistance, unsigned minSegmentSize=1, float minOccupiedArea=0.0, unsigned expandSegmentSize=0, int maxr=1) |
| std::vector< ConnectedComponent > | segmentByLimit (cv::Mat *pi_img, double pi_limit) |
| ~ConnectedComponentAnalyzer () | |
Static Public Member Functions | |
| static void | isolateLargestSegment (unsigned char *binImage, unsigned width, unsigned height) |
Private Member Functions | |
| std::vector< ConnectedComponent > | extractComponents (unsigned max_label, unsigned minSegmentSize, float minOccupiedArea, unsigned expandSegmentSize) |
Private Attributes | |
| unsigned | m_Height |
| unsigned * | m_LabelImage |
| unsigned | m_Width |
Detects connected components in an image.
Definition at line 25 of file ConnectedComponentAnalyzer.h.
Does nothing.
Does nothing.
| std::vector<ConnectedComponent> ConnectedComponentAnalyzer::extractComponents | ( | unsigned | max_label, |
| unsigned | minSegmentSize, | ||
| float | minOccupiedArea, | ||
| unsigned | expandSegmentSize | ||
| ) | [private] |
Extract connected components from a label image. Shared code between the different segment() implementations
| labelImage | label image |
| width | image width |
| height | image height |
| max_label | maximum label id |
| minSegmentSize | minimal segment size (pixels) |
| expandSegmentSize | expand the segments with the given size |
| unsigned ConnectedComponentAnalyzer::getImageHeight | ( | ) | [inline] |
Definition at line 88 of file ConnectedComponentAnalyzer.h.
| unsigned ConnectedComponentAnalyzer::getImageWidth | ( | ) | [inline] |
Definition at line 87 of file ConnectedComponentAnalyzer.h.
| unsigned* ConnectedComponentAnalyzer::getLastLabelImage | ( | ) | [inline] |
Get the label image and dimensions of the last segmentation run.
Definition at line 86 of file ConnectedComponentAnalyzer.h.
| static void ConnectedComponentAnalyzer::isolateLargestSegment | ( | unsigned char * | binImage, |
| unsigned | width, | ||
| unsigned | height | ||
| ) | [static] |
Clear all mask segments except the largest one
| std::vector< ConnectedComponent > ConnectedComponentAnalyzer::segment | ( | unsigned char * | binImage, |
| unsigned | width, | ||
| unsigned | height, | ||
| unsigned | minSegmentSize = 1, |
||
| float | minOccupiedArea = 0.0, |
||
| unsigned | expandSegmentSize = 0 |
||
| ) |
This method extracts segments of an already binarized image and returns a list of the segments containing bounding box, cog, size, etc.
| binImage | binarized image |
| width | width of the image |
| height | height of the image |
| minSegmentSize | minimal segment size (pixels) |
| expandSegmentSize | expand the segments with the given size |
| std::vector< ConnectedComponent > ConnectedComponentAnalyzer::segment | ( | const float * | floatImage, |
| unsigned | width, | ||
| unsigned | height, | ||
| float | maxDistance, | ||
| unsigned | minSegmentSize = 1, |
||
| float | minOccupiedArea = 0.0, |
||
| unsigned | expandSegmentSize = 0 |
||
| ) |
This method extracts segments of a range image using single linkage similarity checks between components and component candidates.
| rangeImage | range image |
| width | width of the image |
| height | height of the image |
| maxDistance | the similarity threshold (pixels with intensity difference <= maxDistance belong to the same object) |
| minSegmentSize | minimal segment size (pixels) |
| expandSegmentSize | expand the segments with the given size |
| std::vector< ConnectedComponent > ConnectedComponentAnalyzer::segment | ( | const float * | floatImage, |
| const unsigned char * | mask, | ||
| unsigned | width, | ||
| unsigned | height, | ||
| float | maxDistance, | ||
| unsigned | minSegmentSize = 1, |
||
| float | minOccupiedArea = 0.0, |
||
| unsigned | expandSegmentSize = 0, |
||
| int | maxr = 1 |
||
| ) |
| std::vector< ConnectedComponent > ConnectedComponentAnalyzer::segmentByLimit | ( | cv::Mat * | pi_img, |
| double | pi_limit | ||
| ) |
This method first detects pixels in a gray level image that have a value greater equal pi_limit. Then it extracts these segments and returns a list of the segments containing bounding box, center of gravity (cog), size
| pi_img | The pointer to a cv::Mat Gray level image. |
| pi_limit | A pixel is considered to be part of a component if its value is equal or larger than pi_limit. |
unsigned ConnectedComponentAnalyzer::m_Height [private] |
Definition at line 149 of file ConnectedComponentAnalyzer.h.
unsigned* ConnectedComponentAnalyzer::m_LabelImage [private] |
Definition at line 148 of file ConnectedComponentAnalyzer.h.
unsigned ConnectedComponentAnalyzer::m_Width [private] |
Definition at line 149 of file ConnectedComponentAnalyzer.h.