Basic Image AlgorithmS Library
2.8.0
|
generic convolution class. More...
#include <Filter/Convolution.hh>
Public Types | |
enum | TBorderHandling { TBH_full, TBH_same, TBH_valid } |
enum for border calculation, same meanings as in matlab: More... | |
Public Member Functions | |
void | AddDebugLevel (const long int lv) |
void | AddDebugLevel (const std::string &name) |
bool | CalculationInFloat () const |
decides if calculation is done in integer or floating point More... | |
virtual FilterNToN < InputStorageType, OutputStorageType > * | Clone () const |
Convolution () | |
Convolution (const Convolution< InputStorageType, OutputStorageType > &other) | |
void | CopyNonROIFromSource (const Image< InputStorageType > &src, Image< OutputStorageType > &dst) const |
run over all pixel which do not belong to the roi and set them to the value in the source image regardless of the roi of the source. More... | |
bool | DebugLevelIsSet (const long int lv) const |
bool | DebugLevelIsSet (const std::string &name) const |
virtual int | Filter (const Image< InputStorageType > &src, Image< OutputStorageType > &dst) |
decides on the image types which FilterFunction should be called More... | |
virtual int | FilterFloat (const Image< InputStorageType > &src, Image< OutputStorageType > &dst) |
do the convolution using floating point calculations More... | |
virtual int | FilterInt (const Image< InputStorageType > &src, Image< OutputStorageType > &dst) |
do the convolution using integer arithmetics and shifts More... | |
int | GetBorderHandling () const |
void | GetBorders (int &border_x, int &border_y) const |
int | GetDebugLevel () const |
std::ostream & | GetDebugStream () const |
void | GetDebugStream (std::ostream &os) const |
void | GetKernel (FilterMask &fm) const |
get the current filter mask More... | |
long int | Name2DebugLevel (const std::string &name) const |
looks up a debuglevel in the internal map, returns 0 if not found More... | |
long int | NewDebugLevel (const std::string &name) |
creates a new debuglevel More... | |
void | PrintDebugLevel (std::ostream &os=std::cout) const |
void | PrintKernel () const |
prints the used filter mask, for debugging More... | |
void | RemoveDebugLevel (const long int lv) |
void | RemoveDebugLevel (const std::string &name) |
void | SetBorderHandling (const int bh) |
void | SetDebugLevel (const long int lv) |
void | SetDebugLevel (const std::string &name) |
void | SetDebugStream (const std::ostream &os) |
void | SetKernel (FilterMask &fm) |
set a new filter mask More... | |
void | SetNonROIToValue (Image< OutputStorageType > &dst, const std::vector< OutputStorageType > &t) const |
run over all pixel which do not belong to the roi and set them to some value (typically black) More... | |
void | ShowDebugLevel (std::ostream &os=std::cout) const |
prints all internally known debuglevels More... | |
virtual | ~Convolution () |
Static Public Member Functions | |
static long int | GetGlobalDebugLevel () |
static void | SetGlobalDebugLevel (long int lev) |
Protected Member Functions | |
long | ConsumeNextFreeDebuglevel_ () |
returns the next available debuglevel More... | |
int | ConvFloatHori_ (const Image< InputStorageType > &src, Image< CONV_FLOAT > &dst) |
worker function for float separated (horizontal) convolution More... | |
int | ConvFloatMat_ (const Image< InputStorageType > &src, Image< OutputStorageType > &dst) |
worker function for float matrix convolution More... | |
int | ConvFloatVert_ (const Image< CONV_FLOAT > &src, Image< OutputStorageType > &dst) |
worker function for float separated (vertical) convolution More... | |
int | ConvIntHori_ (const Image< InputStorageType > &src, Image< CONV_INT > &dst) |
worker function for int separated (horizontal) convolution More... | |
int | ConvIntMat_ (const Image< InputStorageType > &src, Image< OutputStorageType > &dst) |
worker function for int matrix convolution More... | |
int | ConvIntVert_ (const Image< CONV_INT > &src, Image< OutputStorageType > &dst) |
worker function for int separated (vertical) convolution More... | |
void | GetBordersValid_ (int &border_x, int &border_y) const |
Protected Attributes | |
int | _FilterBorderHandling |
FilterMask | _fm |
the kernel data used for convolution More... | |
long int | _liDebugLevel |
long int | _liNextDebugLevel |
new concept, debuglevel are managed here in the debug class More... | |
std::map< std::string, long int > | _String2Debuglevel |
Image< CONV_FLOAT > | _tmpFloat |
temporary memory, needed for separable filters when float filtering More... | |
Image< CONV_INT > | _tmpInt |
temporary memory, needed for separable filters when integer filtering More... | |
Static Protected Attributes | |
static std::ostream | _zDebugStream |
static long int | GlobalDebugLevel = 0 |
generic convolution class.
Use as follows:
Center pixel is determined by (size-1)>>1.
Definition at line 66 of file Convolution.hh.
|
inherited |
enum for border calculation, same meanings as in matlab:
Enumerator | |
---|---|
TBH_full | |
TBH_same | |
TBH_valid |
Definition at line 98 of file FilterBase.hh.
Convolution::Convolution | ( | ) |
Definition at line 396 of file Convolution.cpp.
References BIAS::Convolution< InputStorageType, OutputStorageType >::_fm, and BIAS::FilterMask::SetZero().
Convolution::Convolution | ( | const Convolution< InputStorageType, OutputStorageType > & | other | ) |
Definition at line 404 of file Convolution.cpp.
|
virtual |
Definition at line 410 of file Convolution.cpp.
|
inlineinherited |
Definition at line 355 of file Debug.hh.
Referenced by BIAS::GLProjectionParametersBase::AddDebugLevel(), BIAS::Triangulation::CorrectCorrespondences(), BIAS::FilterBase< InputStorageType, OutputStorageType >::FilterBase(), BIAS::ShowCamWxVideoSourceFactory::OpenDevice(), and BIAS::SceneOpenSceneGraph::SceneOpenSceneGraph().
|
inlineinherited |
|
inline |
decides if calculation is done in integer or floating point
Definition at line 103 of file Convolution.hh.
|
inlinevirtual |
Implements BIAS::FilterNToN< InputStorageType, OutputStorageType >.
Reimplemented in BIAS::Gauss< InputStorageType, OutputStorageType >, BIAS::Gauss< float, float >, BIAS::Gauss< InputST, OutputST >, BIAS::Gauss< OutputStorageType, OutputStorageType >, BIAS::Gauss< StorageType, StorageType >, BIAS::Gauss< unsigned char, unsigned char >, BIAS::Binomial< InputStorageType, OutputStorageType >, BIAS::Mean< InputStorageType, OutputStorageType >, and BIAS::Mean< InputST, OutputST >.
Definition at line 88 of file Convolution.hh.
|
inlineprotectedinherited |
|
protected |
worker function for float separated (horizontal) convolution
Definition at line 290 of file Convolution.cpp.
References BIAS::ImageBase::GetChannelCount(), BIAS::ImageBase::GetHeight(), BIAS::Image< StorageType >::GetImageDataArray(), BIAS::ImageBase::GetWidth(), BIAS::ImageBase::IsInterleaved(), and BIAS::Vector< T >::Size().
|
protected |
worker function for float matrix convolution
Definition at line 228 of file Convolution.cpp.
References BIAS::ImageBase::GetChannelCount(), BIAS::Matrix< T >::GetCols(), BIAS::ImageBase::GetHeight(), BIAS::Image< StorageType >::GetImageDataArray(), BIAS::Matrix< T >::GetRows(), BIAS::ImageBase::GetWidth(), and BIAS::ImageBase::IsInterleaved().
|
protected |
worker function for float separated (vertical) convolution
Definition at line 344 of file Convolution.cpp.
References BIAS::ImageBase::GetChannelCount(), BIAS::ImageBase::GetHeight(), BIAS::Image< StorageType >::GetImageDataArray(), BIAS::ImageBase::GetWidth(), BIAS::ImageBase::IsInterleaved(), and BIAS::Vector< T >::Size().
|
protected |
worker function for int separated (horizontal) convolution
Definition at line 115 of file Convolution.cpp.
References BIAS::ImageBase::GetChannelCount(), BIAS::ImageBase::GetHeight(), BIAS::Image< StorageType >::GetImageDataArray(), BIAS::ImageBase::GetWidth(), BIAS::ImageBase::IsInterleaved(), and BIAS::Vector< T >::Size().
|
protected |
worker function for int matrix convolution
Definition at line 50 of file Convolution.cpp.
References BIAS::ImageBase::GetChannelCount(), BIAS::Matrix< T >::GetCols(), BIAS::ImageBase::GetHeight(), BIAS::Image< StorageType >::GetImageDataArray(), BIAS::Matrix< T >::GetRows(), BIAS::ImageBase::GetWidth(), and BIAS::ImageBase::IsInterleaved().
|
protected |
worker function for int separated (vertical) convolution
Definition at line 171 of file Convolution.cpp.
References BIAS::ImageBase::GetChannelCount(), BIAS::ImageBase::GetHeight(), BIAS::Image< StorageType >::GetImageDataArray(), BIAS::ImageBase::GetWidth(), BIAS::ImageBase::IsInterleaved(), and BIAS::Vector< T >::Size().
|
inherited |
run over all pixel which do not belong to the roi and set them to the value in the source image regardless of the roi of the source.
Both images must have same size.
Definition at line 135 of file FilterBase.cpp.
References BIAS::ImageBase::GetChannelCount(), BIAS::ROI::GetCorners(), BIAS::ImageBase::GetHeight(), BIAS::Image< StorageType >::GetImageDataArray(), BIAS::ImageBase::GetROI(), BIAS::ImageBase::GetWidth(), and BIAS::ROI_Corners.
|
inlineinherited |
Definition at line 341 of file Debug.hh.
Referenced by BIAS::GenSynthMatches::_AddUniformDistributedOutliers(), BIAS::GenSynthMatches::_CreateCamMovement(), BIAS::GenSynthMatches::_CreateStatic2DPoints(), BIAS::UnscentedTransform::ComputeSigmaPoints_(), BIAS::Triangulation::CorrectCorrespondences(), BIAS::GenSynthMatches::GetGTNormalizedF(), BIAS::MonteCarloTransform::GetSamples_(), and BIAS::MonteCarloTransform::Transform().
|
inlineinherited |
|
virtual |
decides on the image types which FilterFunction should be called
Implements BIAS::FilterNToN< InputStorageType, OutputStorageType >.
Reimplemented in BIAS::Gauss< InputStorageType, OutputStorageType >, BIAS::Gauss< float, float >, BIAS::Gauss< InputST, OutputST >, BIAS::Gauss< OutputStorageType, OutputStorageType >, BIAS::Gauss< StorageType, StorageType >, BIAS::Gauss< unsigned char, unsigned char >, BIAS::Binomial< InputStorageType, OutputStorageType >, BIAS::GaussThreshold< InputStorageType, OutputStorageType >, BIAS::Mean< InputStorageType, OutputStorageType >, and BIAS::Mean< InputST, OutputST >.
Definition at line 417 of file Convolution.cpp.
References BIAS::Convolution< InputStorageType, OutputStorageType >::FilterFloat(), and BIAS::Convolution< InputStorageType, OutputStorageType >::FilterInt().
Referenced by BIAS::Mean< InputStorageType, OutputStorageType >::Filter(), BIAS::GaussThreshold< InputStorageType, OutputStorageType >::Filter(), BIAS::Binomial< InputStorageType, OutputStorageType >::Filter(), BIAS::Gauss< InputStorageType, OutputStorageType >::Filter(), BIAS::Binomial< InputStorageType, OutputStorageType >::Filter3x3(), BIAS::Binomial< InputStorageType, OutputStorageType >::Filter5x5(), and BIAS::Mean< InputStorageType, OutputStorageType >::FilterMean2x2().
|
virtual |
do the convolution using floating point calculations
Implements BIAS::FilterNToN< InputStorageType, OutputStorageType >.
Reimplemented in BIAS::Gauss< InputStorageType, OutputStorageType >, BIAS::Gauss< float, float >, BIAS::Gauss< InputST, OutputST >, BIAS::Gauss< OutputStorageType, OutputStorageType >, BIAS::Gauss< StorageType, StorageType >, BIAS::Gauss< unsigned char, unsigned char >, BIAS::Mean< InputStorageType, OutputStorageType >, BIAS::Mean< InputST, OutputST >, and BIAS::Binomial< InputStorageType, OutputStorageType >.
Definition at line 502 of file Convolution.cpp.
References BIAS::ImageBase::GetChannelCount(), BIAS::ImageBase::GetHeight(), BIAS::ImageBase::GetROI(), BIAS::ImageBase::GetROICorners(), BIAS::ImageBase::GetStorageType(), BIAS::ImageBase::GetWidth(), BIAS::Image< StorageType >::Init(), BIAS::ImageBase::IsInterleaved(), BIAS::Image< StorageType >::Release(), BIAS::ImageBase::SamePixelAndChannelCount(), BIAS::ImageIO::Save(), BIAS::ROI::SetCorners(), and BIAS::ImageBase::ST_float.
Referenced by BIAS::Convolution< InputStorageType, OutputStorageType >::Filter(), and BIAS::Gauss< InputStorageType, OutputStorageType >::FilterFloat().
|
virtual |
do the convolution using integer arithmetics and shifts
Implements BIAS::FilterNToN< InputStorageType, OutputStorageType >.
Reimplemented in BIAS::Gauss< InputStorageType, OutputStorageType >, BIAS::Gauss< float, float >, BIAS::Gauss< InputST, OutputST >, BIAS::Gauss< OutputStorageType, OutputStorageType >, BIAS::Gauss< StorageType, StorageType >, BIAS::Gauss< unsigned char, unsigned char >, BIAS::Binomial< InputStorageType, OutputStorageType >, BIAS::Mean< InputStorageType, OutputStorageType >, and BIAS::Mean< InputST, OutputST >.
Definition at line 444 of file Convolution.cpp.
References BIAS::ImageBase::GetChannelCount(), BIAS::ImageBase::GetHeight(), BIAS::ImageBase::GetROI(), BIAS::ImageBase::GetROICorners(), BIAS::ImageBase::GetStorageType(), BIAS::ImageBase::GetWidth(), BIAS::Image< StorageType >::Init(), BIAS::ImageBase::IsInterleaved(), BIAS::Image< StorageType >::Release(), BIAS::ImageBase::SamePixelAndChannelCount(), BIAS::ImageIO::Save(), BIAS::ROI::SetCorners(), and BIAS::ImageBase::SetROICorners().
Referenced by BIAS::Convolution< InputStorageType, OutputStorageType >::Filter(), and BIAS::Gauss< InputStorageType, OutputStorageType >::FilterInt().
|
inlineinherited |
Definition at line 129 of file FilterBase.hh.
|
inherited |
Definition at line 61 of file FilterBase.cpp.
Referenced by BIAS::Rescale< InputStorageType, OutputStorageType >::GetBordersValid_().
|
inlineprotectedvirtual |
Implements BIAS::FilterBase< InputStorageType, OutputStorageType >.
Reimplemented in BIAS::Mean< InputStorageType, OutputStorageType >, and BIAS::Mean< InputST, OutputST >.
Definition at line 143 of file Convolution.hh.
|
inlineinherited |
Definition at line 332 of file Debug.hh.
Referenced by BIAS::listenthread(), BIAS::Image< StorageType >::operator=(), and BIAS::ImageBase::operator=().
|
inlineinherited |
|
inlineinherited |
|
inlinestaticinherited |
|
inline |
get the current filter mask
Definition at line 92 of file Convolution.hh.
|
inlineinherited |
|
inlineinherited |
creates a new debuglevel
Definition at line 474 of file Debug.hh.
Referenced by BIAS::COSAC< SolutionType >::COSAC(), BIAS::ProjectionParametersPerspectiveDepth::Init(), BIAS::MonteCarloTransform::MonteCarloTransform(), BIAS::PMatrixEstimation::PMatrixEstimation(), BIAS::PreemptiveRANSAC< SolutionType >::PreemptiveRANSAC(), BIAS::RANSACPreKnowledge< SolutionType >::RANSACPreKnowledge(), BIAS::ROI::ROI(), BIAS::RotationAveraging::RotationAveraging(), BIAS::SceneOpenSceneGraph::SceneOpenSceneGraph(), BIAS::ThreeDOutOpenSceneGraph::ThreeDOutOpenSceneGraph(), BIAS::Triangulation::Triangulation(), and BIAS::UnscentedTransform::UnscentedTransform().
|
inlineinherited |
void Convolution::PrintKernel | ( | ) | const |
prints the used filter mask, for debugging
Definition at line 583 of file Convolution.cpp.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
Definition at line 127 of file FilterBase.hh.
Referenced by BIAS::PMDImageProc::DenoiseDepthImage(), BIAS::CalibratedPyramid< StorageType >::Downsample_(), BIAS::PMDImageProc::FitDepthTo2DImage(), and BIAS::PMDImageProc::FitDepthTo2DImageFree_().
|
inlineinherited |
Definition at line 318 of file Debug.hh.
Referenced by BIAS::ShowCamWxVideoSourceFactory::CreateBumbleBee(), BIAS::ShowCamWxVideoSourceFactory::CreateDCAM(), BIAS::VideoSource_MDcam::ScanBus(), BIAS::GLProjectionParametersBase::SetDebugLevel(), BIAS::VideoSource_Disk::VideoSource_Disk(), BIAS::VideoSource_DV2::VideoSource_DV2(), BIAS::VideoSource_DV::VideoSource_DV_Internal_Init_(), and BIAS::VideoSource_V4L::VideoSource_V4L().
|
inlineinherited |
|
inlineinherited |
|
inlinestaticinherited |
|
inline |
set a new filter mask
Definition at line 96 of file Convolution.hh.
|
inherited |
run over all pixel which do not belong to the roi and set them to some value (typically black)
Definition at line 84 of file FilterBase.cpp.
References BIAS::ImageBase::GetChannelCount(), BIAS::ROI::GetCorners(), BIAS::ImageBase::GetHeight(), BIAS::Image< StorageType >::GetImageDataArray(), BIAS::ImageBase::GetROI(), BIAS::ImageBase::GetWidth(), and BIAS::ROI_Corners.
|
inlineinherited |
|
protectedinherited |
Definition at line 132 of file FilterBase.hh.
Referenced by BIAS::FilterBase< InputStorageType, OutputStorageType >::FilterBase().
|
protected |
the kernel data used for convolution
Definition at line 107 of file Convolution.hh.
Referenced by BIAS::Convolution< InputStorageType, OutputStorageType >::Convolution().
|
protectedinherited |
Definition at line 510 of file Debug.hh.
Referenced by BIAS::Debug::operator=(), and BIAS::ImageBase::operator=().
|
protectedinherited |
new concept, debuglevel are managed here in the debug class
Definition at line 516 of file Debug.hh.
Referenced by BIAS::Debug::operator=().
|
protectedinherited |
Definition at line 517 of file Debug.hh.
Referenced by BIAS::Debug::operator=().
|
protected |
temporary memory, needed for separable filters when float filtering
Definition at line 114 of file Convolution.hh.
|
protected |
temporary memory, needed for separable filters when integer filtering
Definition at line 117 of file Convolution.hh.
|
staticprotectedinherited |
Definition at line 511 of file Debug.hh.
Referenced by BIAS::Debug::operator=().
|
staticprotectedinherited |