[ VIGRA Homepage | Function Index | Class Index | Namespaces | File List | Main Page ]
|   | FindBoundingRectangle [Functors To Inspect Images] |  | 
Calculate the bounding rectangle of an ROI in an image. More...
#include <vigra/inspectimage.hxx>
| Public Types | |
| typedef Diff2D | argument_type | 
| typedef Rect2D | result_type | 
| typedef Diff2D | value_type | 
| Public Member Functions | |
| FindBoundingRectangle () | |
| result_type | operator() () const | 
| void | operator() (FindBoundingRectangle const &otherRegion) | 
| void | operator() (argument_type const &coord) | 
| void | reset () | 
| Size2D | size () const | 
| Public Attributes | |
| Point2D | lowerRight | 
| Point2D | upperLeft | 
| bool | valid | 
As always in VIGRA, roiRect.lowerRight is  just outside the rectangle. That is, the last pixel actually in the rectangle is roiRect.lowerRight - Diff2D(1,1). This Functor is often used in conjunction with ArrayOfRegionStatistics to find the bounding rectangles of all regions in a labeled image.
Traits defined:
FunctorTraits::isUnaryAnalyser and FunctorTraits::isInitializer are true (VigraTrueType)
Usage:
#include <vigra/inspectimage.hxx>
 Namespace: vigra
vigra::BImage img, mask; ... vigra::FindBoundingRectangle roiRect; // init functor // Diff2D is used as the iterator for the source image. This // simulates an image where each pixel value equals that pixel's // coordinates. Tha image 'mask' determines the ROI. vigra::inspectImageIf(srcIterRange(Diff2D(0,0), img.size()), srcImage(mask), roiRect); cout << "Upper left of ROI: " << roiRect.upperLeft.x << ", " << roiRect.upperLeft.y << endl; cout << "Lower right of ROI: " << roiRect.lowerRight.x << ", " << roiRect.lowerRight.y << endl;
| typedef Diff2D argument_type | 
the functor's argument type
| typedef Rect2D result_type | 
the functors result type
| typedef Diff2D value_type | 
init rectangle to invalid values
| result_type operator() | ( | ) | const | 
Get current rectangle. result_type::first is the upper left corner of the rectangle, result_type::second the lower right. 
| void operator() | ( | FindBoundingRectangle const & | otherRegion | ) | 
update rectangle by merging it with another rectangle
| void operator() | ( | argument_type const & | coord | ) | 
update rectangle by including the coordinate coord
| void reset | ( | ) | 
(re-)init functor to find other bounds
| Size2D size | ( | ) | const | 
Get size of current rectangle.
Lower right of the region as seen so far
| bool valid | 
are the functors contents valid ?
| 
© Ullrich Köthe     (ullrich.koethe@iwr.uni-heidelberg.de)  | 
html generated using doxygen and Python
 |