Inheritance diagram for w2img::HoughLineFinder:
The lines found can be obtained using the getLines() method.
Duda, R. O. and P. E. Hart, "Use of the Hough Transformation to Detect Lines and Curves in Pictures," Comm. ACM, Vol. 15, pp. 11–15 (January, 1972)
Public Member Functions | |
HoughLineFinder (float data_low, float data_high, int minLengthWithMaxIntensity, int maxDiscontinuity) | |
Specify the data range (lower and higher). | |
virtual | ~HoughLineFinder () |
virtual code::Image< float > | filterImage (const code::Image< float > &data) |
the work-horse function. | |
const std::vector< Line > & | getLines () const |
returns the strongest lines in the previously processed image. | |
virtual code::SmartPtr< code::DataType > | filter (const code::RadialSet &) |
virtual code::SmartPtr< code::DataType > | filter (const code::CartesianGrid2D &) |
virtual code::SmartPtr< code::DataType > | filter (const code::LatLonGrid &) |
void | process (code::PolarGrid &) |
Note that you need to call getResult() to get the result. | |
void | process (code::RadialSet &) |
Note that you need to call getResult() to get the result. | |
void | process (code::CartesianGrid2D &) |
Note that you need to call getResult() to get the result. | |
void | process (code::LatLonGrid &) |
Note that you need to call getResult() to get the result. | |
void | process (code::WindFieldStruct< code::LatLonGrid > &) |
Note that you need to call getResult() to get the result. | |
void | process (code::WindFieldStruct< code::CartesianGrid2D > &) |
Note that you need to call getResult() to get the result. | |
void | allowChangingMissingData (bool in) |
Should we filter at missing data values also, or not process missing values? By default, smoothing around a missing value might produce a value at that point in the result i.e. | |
bool | canChangeMissing () const |
void | setToHandleRadialData (bool in) |
Pass in true if radial data should be filtered directly instead, of as is default, to convert to CartesianGrid before contouring. | |
void | setCartesianGridResolutionRatio (double inres) |
changes the grid resolution of CartesianGrids created from RadialSets from that of the gate width. | |
void | setCartesianGridDimension (const code::Length &indim) |
clips cartesian grids to this extent in the horizontal and vertical directions. | |
void | setWrapAroundRadials (size_t numWrapAroundRadials) |
Normally, the RadialSet processing is done with no radial "wrapping". | |
size_t | getWrapAroundRadials () const |
code::SmartPtr< code::DataType > | getResult () |
get the result of the filtering -- returns 0 on error. | |
void | reset () |
Protected Attributes | |
code::SmartPtr< code::DataType > | myResult |
Classes | |
struct | Line |
A line found using the Hough transform. More... |
w2img::HoughLineFinder::HoughLineFinder | ( | float | data_low, | |
float | data_high, | |||
int | minLengthWithMaxIntensity, | |||
int | maxDiscontinuity | |||
) |
Specify the data range (lower and higher).
Values below "low" are not considered, while values above "high" are assumed to be "high". Third, specify the minimum length of a line if it consists of all high-intensity points. For example, if you specify 3, then only lines longer than 3 points will be shown. Fourth, specify how discontinuous the lines can be before they are considered to be separate line segments (specify the distance)
This implementation uses the relative magnitude of the points to weight the lines, so that lines consisting of stronger points are emphasized.
virtual w2img::HoughLineFinder::~HoughLineFinder | ( | ) | [virtual] |
void w2img::SingleData2DFilter::allowChangingMissingData | ( | bool | in | ) | [inline, virtual, inherited] |
Should we filter at missing data values also, or not process missing values? By default, smoothing around a missing value might produce a value at that point in the result i.e.
the bool is true.
Implements w2img::Data2DFilter.
bool w2img::SingleData2DFilter::canChangeMissing | ( | ) | const [inline, virtual, inherited] |
Implements w2img::Data2DFilter.
virtual code::SmartPtr<code::DataType> w2img::ImageFilter::filter | ( | const code::LatLonGrid & | ) | [virtual, inherited] |
virtual code::SmartPtr<code::DataType> w2img::ImageFilter::filter | ( | const code::CartesianGrid2D & | ) | [virtual, inherited] |
virtual code::SmartPtr<code::DataType> w2img::ImageFilter::filter | ( | const code::RadialSet & | ) | [virtual, inherited] |
virtual code::Image<float> w2img::HoughLineFinder::filterImage | ( | const code::Image< float > & | data | ) | [virtual] |
const std::vector<Line>& w2img::HoughLineFinder::getLines | ( | ) | const [inline] |
returns the strongest lines in the previously processed image.
code::SmartPtr<code::DataType> w2img::Data2DFilter::getResult | ( | ) | [inline, inherited] |
get the result of the filtering -- returns 0 on error.
This may or may not be the same data as passed in, for example process(RadialSet) may return a CartesianGrid.
size_t w2img::SingleData2DFilter::getWrapAroundRadials | ( | ) | const [inline, virtual, inherited] |
Implements w2img::Data2DFilter.
void w2img::SingleData2DFilter::process | ( | code::WindFieldStruct< code::CartesianGrid2D > & | ) | [inherited] |
Note that you need to call getResult() to get the result.
The input data is not changed.
void w2img::SingleData2DFilter::process | ( | code::WindFieldStruct< code::LatLonGrid > & | ) | [inherited] |
Note that you need to call getResult() to get the result.
The input data is not changed.
void w2img::SingleData2DFilter::process | ( | code::LatLonGrid & | ) | [inherited] |
Note that you need to call getResult() to get the result.
The input data is not changed.
void w2img::SingleData2DFilter::process | ( | code::CartesianGrid2D & | ) | [inherited] |
Note that you need to call getResult() to get the result.
The input data is not changed.
void w2img::SingleData2DFilter::process | ( | code::RadialSet & | ) | [inherited] |
Note that you need to call getResult() to get the result.
The input data is not changed.
void w2img::SingleData2DFilter::process | ( | code::PolarGrid & | ) | [inherited] |
Note that you need to call getResult() to get the result.
The input data is not changed.
void w2img::Data2DFilter::reset | ( | ) | [inline, inherited] |
void w2img::SingleData2DFilter::setCartesianGridDimension | ( | const code::Length & | indim | ) | [inline, virtual, inherited] |
clips cartesian grids to this extent in the horizontal and vertical directions.
(Removes the boundaries, keeping the image centered at the same spot).
by default, no such clipping is done. Pass in Length() to turn off clipping.
Implements w2img::Data2DFilter.
void w2img::SingleData2DFilter::setCartesianGridResolutionRatio | ( | double | inres | ) | [inline, virtual, inherited] |
changes the grid resolution of CartesianGrids created from RadialSets from that of the gate width.
For example, if the RadialSet's gate width is 1km, then if the ratio is 3, the CartesianGrid's resolution is 0.33km. If the input ratio is 0.33 then the grid resolution will be 3km.
Implements w2img::Data2DFilter.
void w2img::SingleData2DFilter::setToHandleRadialData | ( | bool | in | ) | [inline, virtual, inherited] |
Pass in true if radial data should be filtered directly instead, of as is default, to convert to CartesianGrid before contouring.
Implements w2img::Data2DFilter.
void w2img::SingleData2DFilter::setWrapAroundRadials | ( | size_t | numWrapAroundRadials | ) | [inline, virtual, inherited] |
Normally, the RadialSet processing is done with no radial "wrapping".
You can remove boundary effects in the azimuthal direction by calling this function with a value greater than zero.
When filtering with a 5x5 kernel, this class will automatically add 5 radials, do the filtering and then remove the extra five radials. In that case, the number of wraparound radials should be set to 5.
Implements w2img::Data2DFilter.
code::SmartPtr<code::DataType> w2img::Data2DFilter::myResult [protected, inherited] |