Fawkes API
Fawkes Development Version
|
#include <>>
Public Member Functions | |
Filter (const char *name, unsigned int max_num_buffers=1) | |
Constructor. More... | |
virtual | ~Filter () |
Destructor. More... | |
virtual void | set_src_buffer (unsigned char *buf, ROI *roi, orientation_t ori=ORI_HORIZONTAL, unsigned int buffer_num=0) |
Set source buffer with orientation. More... | |
virtual void | set_src_buffer (unsigned char *buf, ROI *roi, unsigned int buffer_num) |
Set source buffer. More... | |
virtual void | set_dst_buffer (unsigned char *buf, ROI *roi) |
Set the destination buffer. More... | |
virtual void | set_orientation (orientation_t ori, unsigned int buffer_num) |
Set the orientation to apply the filter in. More... | |
virtual const char * | name () |
Get filter name. More... | |
virtual void | apply ()=0 |
Apply the filter. More... | |
void | shrink_region (ROI *r, unsigned int n) |
This shrinks the regions as needed for a N x N matrix. More... | |
Protected Attributes | |
unsigned int | _max_num_buffers |
Maximum number of buffers. More... | |
char * | _name |
Filter name. More... | |
unsigned char ** | src |
Source buffers, dynamically allocated by Filter ctor. More... | |
unsigned char * | dst |
Destination buffer. More... | |
ROI ** | src_roi |
Source ROIs, dynamically allocated by Filter ctor. More... | |
ROI * | dst_roi |
Destination ROI. More... | |
orientation_t * | ori |
Orientations, one for each source image. More... | |
Filter interface.
This class defines the general interface that filters are used with.
firevision::Filter::Filter | ( | const char * | name, |
unsigned int | max_num_buffers = 1 |
||
) |
Constructor.
name | name of the filter |
max_num_buffers | The maximum number of source buffers that can be set. |
Definition at line 54 of file filter.cpp.
|
virtual |
Destructor.
Definition at line 75 of file filter.cpp.
|
pure virtual |
Apply the filter.
Apply the filter to the given source and destination buffers with given width and height and orientation (ori may be ignored for some filters).
Implemented in firevision::FilterClosing, firevision::FilterOpening, firevision::FilterROIDraw, firevision::FilterColorThreshold, firevision::FilterGeodesicDilation, firevision::FilterGeodesicErosion, firevision::FilterNothing, firevision::FilterThreshold, firevision::FilterLaplace, firevision::FilterTophatClosing, firevision::FilterShapeRemover, firevision::FilterHVSearch, firevision::FilterGauss, firevision::FilterHipass, firevision::FilterHSearch, firevision::FilterMedian, firevision::FilterOr, firevision::FilterSegment, firevision::FilterScanlineSegmentation, firevision::FilterSharpen, firevision::FilterSobel, firevision::FilterRectify, firevision::FilterColorSegmentation, firevision::FilterUnwarp, firevision::FilterCompare, firevision::FilterDilation, firevision::FilterDifference, firevision::FilterInvert, firevision::FilterMax, firevision::FilterMin, firevision::FilterSum, and firevision::FilterErosion.
|
virtual |
|
virtual |
Set the destination buffer.
buf | Buffer to use as destination image |
roi | Region Of Interest where the result is put in the dst image |
Reimplemented in firevision::FilterClosing, and firevision::FilterOpening.
Definition at line 134 of file filter.cpp.
Referenced by firevision::MirrorCalibTool::abort(), firevision::FilterTophatClosing::apply(), firevision::FilterGeodesicDilation::apply(), firevision::FilterGeodesicErosion::apply(), firevision::FilterOpening::set_dst_buffer(), and firevision::FilterClosing::set_dst_buffer().
|
virtual |
Set the orientation to apply the filter in.
Maybe ignored by some filters.
ori | Orientation |
buffer_num | buffer this orientation applies to |
Definition at line 147 of file filter.cpp.
|
virtual |
Set source buffer with orientation.
buf | Buffer to use as source image |
roi | Region Of Interest to work on |
ori | Orientation to apply the filter in, maybe ignored in some filters |
buffer_num | source buffer to set for filter that need multiple src buffers |
OutOfBoundsException | Thrown if buffer_num is illegal |
Reimplemented in firevision::FilterClosing, and firevision::FilterOpening.
Definition at line 93 of file filter.cpp.
Referenced by firevision::MirrorCalibTool::abort(), firevision::FilterTophatClosing::apply(), firevision::FilterGeodesicErosion::apply(), firevision::FilterGeodesicDilation::apply(), firevision::FilterClosing::set_dst_buffer(), firevision::FilterOpening::set_dst_buffer(), firevision::FilterClosing::set_src_buffer(), and firevision::FilterOpening::set_src_buffer().
|
virtual |
Set source buffer.
buf | Buffer to use as source image |
roi | Region Of Interest to work on |
buffer_num | source buffer to set for filter that need multiple src buffers |
OutOfBoundsException | Thrown if buffer_num is illegal |
Reimplemented in firevision::FilterClosing, and firevision::FilterOpening.
Definition at line 115 of file filter.cpp.
void firevision::Filter::shrink_region | ( | ROI * | r, |
unsigned int | n | ||
) |
This shrinks the regions as needed for a N x N matrix.
r | ROI to shrink |
n | size of the matrix |
Definition at line 172 of file filter.cpp.
References firevision::ROI::height, firevision::ROI::image_height, firevision::ROI::image_width, firevision::ROI::start, firevision::ROI::width, fawkes::upoint_t::x, and fawkes::upoint_t::y.
Referenced by firevision::FilterSobel::apply().
|
protected |
|
protected |
Destination buffer.
Definition at line 67 of file filter.h.
Referenced by firevision::FilterErosion::apply(), firevision::FilterInvert::apply(), firevision::FilterMax::apply(), firevision::FilterDifference::apply(), firevision::FilterMin::apply(), firevision::FilterSum::apply(), firevision::FilterCompare::apply(), firevision::FilterDilation::apply(), firevision::FilterRectify::apply(), firevision::FilterColorSegmentation::apply(), firevision::FilterUnwarp::apply(), firevision::FilterGauss::apply(), firevision::FilterOr::apply(), firevision::FilterHipass::apply(), firevision::FilterMedian::apply(), firevision::FilterScanlineSegmentation::apply(), firevision::FilterHSearch::apply(), firevision::FilterSharpen::apply(), firevision::FilterSegment::apply(), firevision::FilterSobel::apply(), firevision::FilterHVSearch::apply(), firevision::FilterShapeRemover::apply(), firevision::FilterTophatClosing::apply(), firevision::FilterLaplace::apply(), firevision::FilterGeodesicDilation::apply(), firevision::FilterThreshold::apply(), firevision::FilterGeodesicErosion::apply(), firevision::FilterColorThreshold::apply(), firevision::FilterGeodesicDilation::FilterGeodesicDilation(), firevision::FilterTophatClosing::FilterTophatClosing(), and firevision::FilterROIDraw::~FilterROIDraw().
|
protected |
Destination ROI.
Definition at line 72 of file filter.h.
Referenced by firevision::FilterErosion::apply(), firevision::FilterInvert::apply(), firevision::FilterMax::apply(), firevision::FilterDifference::apply(), firevision::FilterMin::apply(), firevision::FilterSum::apply(), firevision::FilterCompare::apply(), firevision::FilterDilation::apply(), firevision::FilterRectify::apply(), firevision::FilterColorSegmentation::apply(), firevision::FilterUnwarp::apply(), firevision::FilterGauss::apply(), firevision::FilterOr::apply(), firevision::FilterHipass::apply(), firevision::FilterMedian::apply(), firevision::FilterScanlineSegmentation::apply(), firevision::FilterHSearch::apply(), firevision::FilterSharpen::apply(), firevision::FilterSegment::apply(), firevision::FilterSobel::apply(), firevision::FilterHVSearch::apply(), firevision::FilterShapeRemover::apply(), firevision::FilterTophatClosing::apply(), firevision::FilterLaplace::apply(), firevision::FilterGeodesicDilation::apply(), firevision::FilterThreshold::apply(), firevision::FilterGeodesicErosion::apply(), firevision::FilterColorThreshold::apply(), firevision::FilterROIDraw::apply(), firevision::FilterGeodesicDilation::FilterGeodesicDilation(), and firevision::FilterTophatClosing::FilterTophatClosing().
|
protected |
Orientations, one for each source image.
Definition at line 75 of file filter.h.
Referenced by firevision::FilterSobel::apply(), and firevision::FilterSobel::FilterSobel().
|
protected |
Source buffers, dynamically allocated by Filter ctor.
Definition at line 65 of file filter.h.
Referenced by firevision::FilterErosion::apply(), firevision::FilterInvert::apply(), firevision::FilterMax::apply(), firevision::FilterDifference::apply(), firevision::FilterMin::apply(), firevision::FilterSum::apply(), firevision::FilterCompare::apply(), firevision::FilterDilation::apply(), firevision::FilterRectify::apply(), firevision::FilterColorSegmentation::apply(), firevision::FilterUnwarp::apply(), firevision::FilterGauss::apply(), firevision::FilterMedian::apply(), firevision::FilterOr::apply(), firevision::FilterSegment::apply(), firevision::FilterHipass::apply(), firevision::FilterHSearch::apply(), firevision::FilterScanlineSegmentation::apply(), firevision::FilterSharpen::apply(), firevision::FilterSobel::apply(), firevision::FilterHVSearch::apply(), firevision::FilterTophatClosing::apply(), firevision::FilterShapeRemover::apply(), firevision::FilterLaplace::apply(), firevision::FilterGeodesicDilation::apply(), firevision::FilterThreshold::apply(), firevision::FilterGeodesicErosion::apply(), firevision::FilterColorThreshold::apply(), firevision::FilterGeodesicDilation::FilterGeodesicDilation(), and firevision::FilterTophatClosing::FilterTophatClosing().
|
protected |
Source ROIs, dynamically allocated by Filter ctor.
Definition at line 70 of file filter.h.
Referenced by firevision::FilterErosion::apply(), firevision::FilterInvert::apply(), firevision::FilterMax::apply(), firevision::FilterDifference::apply(), firevision::FilterMin::apply(), firevision::FilterSum::apply(), firevision::FilterCompare::apply(), firevision::FilterDilation::apply(), firevision::FilterRectify::apply(), firevision::FilterColorSegmentation::apply(), firevision::FilterUnwarp::apply(), firevision::FilterGauss::apply(), firevision::FilterMedian::apply(), firevision::FilterOr::apply(), firevision::FilterSegment::apply(), firevision::FilterHipass::apply(), firevision::FilterHSearch::apply(), firevision::FilterScanlineSegmentation::apply(), firevision::FilterSharpen::apply(), firevision::FilterSobel::apply(), firevision::FilterHVSearch::apply(), firevision::FilterTophatClosing::apply(), firevision::FilterShapeRemover::apply(), firevision::FilterLaplace::apply(), firevision::FilterGeodesicDilation::apply(), firevision::FilterThreshold::apply(), firevision::FilterGeodesicErosion::apply(), firevision::FilterColorThreshold::apply(), firevision::FilterGeodesicDilation::FilterGeodesicDilation(), and firevision::FilterTophatClosing::FilterTophatClosing().