Basic Image AlgorithmS Library
2.8.0
|
gradient calculation with sobel 3 by 3 masks More...
#include <Filter/GradientSobel3x3.hh>
Public Types | |
enum | EVecLengthType { VLT_L1, VLT_L2, VLT_max } |
algorithm used to calculate the absolute length of the 2D vector More... | |
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) |
virtual FilterNTo2N < InputStorageType, OutputStorageType > * | Clone () const |
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 > &grad) |
returns a 2 channel image containing gx and gy More... | |
virtual int | Filter (const Image< InputStorageType > &src, Image< OutputStorageType > &gx, Image< OutputStorageType > &gy) |
dstX.GetChannelCount()==src.GetCHannelCount() More... | |
virtual int | Filter (const Image< InputStorageType > &src, Image< OutputStorageType > &gx, Image< OutputStorageType > &gy, Image< OutputStorageType > &absg) |
virtual int | FilterFloat (const Image< InputStorageType > &src, Image< OutputStorageType > &dst) |
virtual int | FilterFloat (const Image< InputStorageType > &src, Image< OutputStorageType > &dst1, Image< OutputStorageType > &dst2) |
virtual int | FilterInt (const Image< InputStorageType > &src, Image< OutputStorageType > &dst) |
virtual int | FilterInt (const Image< InputStorageType > &src, Image< OutputStorageType > &dst1, Image< OutputStorageType > &dst2) |
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 |
GradientSobel3x3 () | |
GradientSobel3x3 (const GradientSobel3x3< InputStorageType, OutputStorageType > &other) | |
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 | 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 | 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... | |
int | VecLen (const Image< OutputStorageType > &gx, const Image< OutputStorageType > &gy, Image< OutputStorageType > &length) |
decides which vector length to use from *_VecLenthType More... | |
int | VecLenL1 (const Image< OutputStorageType > &gx, const Image< OutputStorageType > &gy, Image< OutputStorageType > &length) |
length = | fabs(gx) + fabs(gy) | destination absg must be initialized More... | |
int | VecLenL2 (const Image< OutputStorageType > &gx, const Image< OutputStorageType > &gy, Image< OutputStorageType > &length) |
length = sqrt(gx*gx+gy*gy) destination absg must be initialized More... | |
int | VecLenMax (const Image< OutputStorageType > &gx, const Image< OutputStorageType > &gy, Image< OutputStorageType > &length) |
length = max(fabs(gx),fabs(gy)) destination absg must be initialized More... | |
virtual | ~GradientSobel3x3 () |
Static Public Member Functions | |
static long int | GetGlobalDebugLevel () |
static void | SetGlobalDebugLevel (long int lev) |
Protected Member Functions | |
void | _AllocInternalMem (const int width, const int height) |
deletes _work1 and _work2 and sets _InternalMemSize More... | |
void | _DeleteInternalMem () |
long | ConsumeNextFreeDebuglevel_ () |
returns the next available debuglevel More... | |
virtual void | GetBordersValid_ (int &border_x, int &border_y) const |
void | InitKernel_ () |
sets the sobel kernel for the convolution object More... | |
void | ShrinkROI_ (ROI *roi) const |
int | Sobel3x3GreySameFloat_ (const Image< InputStorageType > &src, Image< OutputStorageType > &gWE, Image< OutputStorageType > &gNS) |
Repeats the border pixel infinitly in direction perpendicular to the border to achieve destination image ROIs of same size as source image ROIs. More... | |
int | Sobel3x3GreyValidFloat_ (const Image< InputStorageType > &src, Image< OutputStorageType > &gWE, Image< OutputStorageType > &gNS) |
uses CONV_FLOAT for calculation More... | |
int | Sobel3x3GreyValidInt_ (const Image< InputStorageType > &src, Image< OutputStorageType > &gWE, Image< OutputStorageType > &gNS) |
uses CONV_INT for calculation More... | |
Protected Attributes | |
Convolution< InputStorageType, OutputStorageType > | _Conv |
computation object to execute the convolution More... | |
int | _FilterBorderHandling |
CONV_FLOAT ** | _fwork |
CONV_FLOAT ** | _fwork2 |
int | _InternalMemHeight |
int | _InternalMemWidth |
CONV_INT ** | _iwork |
CONV_INT ** | _iwork2 |
long int | _liDebugLevel |
long int | _liNextDebugLevel |
new concept, debuglevel are managed here in the debug class More... | |
std::map< std::string, long int > | _String2Debuglevel |
int | _VecLengthType |
of type Gradient<InputStorageType, OutputStorageType>::EVecLengthType More... | |
Static Protected Attributes | |
static std::ostream | _zDebugStream |
static long int | GlobalDebugLevel = 0 |
gradient calculation with sobel 3 by 3 masks
calculates the gradient using the sobel operators
-1 0 1 -1 -2 -1 WE: -2 0 2 NS: 0 0 0 -1 0 1 1 2 1
They can be separated into:
WE: vh = (-1, 0, 1) and vv = (1, 2, 1)^T
NS: vh = (1, 2, 1) and vv = (-1, 0, 1)^T
Definition at line 54 of file GradientSobel3x3.hh.
|
inherited |
algorithm used to calculate the absolute length of the 2D vector
Enumerator | |
---|---|
VLT_L1 | |
VLT_L2 | |
VLT_max |
Definition at line 52 of file FilterNTo2N.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.
GradientSobel3x3::GradientSobel3x3 | ( | ) |
Definition at line 57 of file GradientSobel3x3.cpp.
References BIAS::GradientSobel3x3< InputStorageType, OutputStorageType >::_fwork, BIAS::GradientSobel3x3< InputStorageType, OutputStorageType >::_fwork2, BIAS::GradientSobel3x3< InputStorageType, OutputStorageType >::_InternalMemHeight, BIAS::GradientSobel3x3< InputStorageType, OutputStorageType >::_InternalMemWidth, BIAS::GradientSobel3x3< InputStorageType, OutputStorageType >::_iwork, BIAS::GradientSobel3x3< InputStorageType, OutputStorageType >::_iwork2, and BIAS::GradientSobel3x3< InputStorageType, OutputStorageType >::InitKernel_().
GradientSobel3x3::GradientSobel3x3 | ( | const GradientSobel3x3< InputStorageType, OutputStorageType > & | other | ) |
Definition at line 68 of file GradientSobel3x3.cpp.
|
virtual |
Definition at line 78 of file GradientSobel3x3.cpp.
|
protected |
deletes _work1 and _work2 and sets _InternalMemSize
Definition at line 579 of file GradientSobel3x3.cpp.
|
protected |
Definition at line 556 of file GradientSobel3x3.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 |
|
inlinevirtual |
Implements BIAS::FilterNTo2N< InputStorageType, OutputStorageType >.
Definition at line 76 of file GradientSobel3x3.hh.
|
inlineprotectedinherited |
|
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 |
returns a 2 channel image containing gx and gy
Reimplemented from BIAS::FilterNTo2N< InputStorageType, OutputStorageType >.
Definition at line 86 of file GradientSobel3x3.cpp.
References BIAS::Image< StorageType >::AppendChannel().
Referenced by BIAS::ContourDetectorBSpline< StorageType >::GetFeatImage_().
|
virtual |
dstX.GetChannelCount()==src.GetCHannelCount()
Reimplemented from BIAS::FilterNTo2N< InputStorageType, OutputStorageType >.
Definition at line 97 of file GradientSobel3x3.cpp.
References BIAS::ImageBase::GetChannelCount(), BIAS::ImageBase::GetHeight(), BIAS::ImageBase::GetROI(), BIAS::ImageBase::GetWidth(), BIAS::Image< StorageType >::Init(), BIAS::Image< StorageType >::Release(), BIAS::ImageBase::SamePixelAndChannelCount(), and BIAS::ImageBase::SetROI().
|
virtual |
Definition at line 159 of file GradientSobel3x3.cpp.
References BIAS::ImageBase::GetChannelCount(), BIAS::ImageBase::GetHeight(), BIAS::ImageBase::GetROI(), BIAS::ImageBase::GetWidth(), BIAS::Image< StorageType >::Init(), BIAS::ImageBase::IsEmpty(), BIAS::Image< StorageType >::Release(), BIAS::ImageBase::SamePixelAndChannelCount(), and BIAS::ImageBase::SetROI().
|
virtualinherited |
Definition at line 74 of file FilterNTo2N.cpp.
|
virtualinherited |
Definition at line 100 of file FilterNTo2N.cpp.
|
virtualinherited |
Definition at line 66 of file FilterNTo2N.cpp.
|
virtualinherited |
Definition at line 91 of file FilterNTo2N.cpp.
|
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_().
|
protectedvirtual |
Implements BIAS::FilterBase< InputStorageType, OutputStorageType >.
Definition at line 616 of file GradientSobel3x3.cpp.
|
inlineinherited |
Definition at line 332 of file Debug.hh.
Referenced by BIAS::listenthread(), BIAS::Image< StorageType >::operator=(), and BIAS::ImageBase::operator=().
|
inlineinherited |
|
inlineinherited |
|
inlinestaticinherited |
|
protected |
sets the sobel kernel for the convolution object
Definition at line 37 of file GradientSobel3x3.cpp.
References BIAS::FilterMask::CreateFloatFilter().
Referenced by BIAS::GradientSobel3x3< InputStorageType, OutputStorageType >::GradientSobel3x3().
|
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 |
|
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 |
|
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 |
|
protected |
Definition at line 623 of file GradientSobel3x3.cpp.
References BIAS::ROI::GetCorners(), BIAS::ROI::GetROIType(), BIAS::ROI::GetRows(), BIAS::ROI_Corners, BIAS::ROI_Mask, BIAS::ROI_Points, BIAS::ROI_Rows, and BIAS::ROI::SetCorners().
|
protected |
Repeats the border pixel infinitly in direction perpendicular to the border to achieve destination image ROIs of same size as source image ROIs.
Untested !!
Definition at line 296 of file GradientSobel3x3.cpp.
References BIAS::ROI::GetCorners(), BIAS::Image< StorageType >::GetImageDataArray(), BIAS::ImageBase::GetROI(), and BIAS::ROI::SetCorners().
|
protected |
uses CONV_FLOAT for calculation
Definition at line 183 of file GradientSobel3x3.cpp.
References BIAS::ImageBase::GetChannelCount(), BIAS::ROI::GetCorners(), BIAS::ImageBase::GetHeight(), BIAS::Image< StorageType >::GetImageData(), BIAS::ImageBase::GetROI(), BIAS::ImageBase::GetWidth(), BIAS::ImageBase::SamePixelAndChannelCount(), and BIAS::ROI::SetCorners().
|
protected |
uses CONV_INT for calculation
Definition at line 442 of file GradientSobel3x3.cpp.
References BIAS::ImageBase::GetChannelCount(), BIAS::ROI::GetCorners(), BIAS::ImageBase::GetHeight(), BIAS::Image< StorageType >::GetImageData(), BIAS::ImageBase::GetROI(), BIAS::ImageBase::GetWidth(), BIAS::ImageBase::SamePixelAndChannelCount(), and BIAS::ROI::SetCorners().
|
inherited |
decides which vector length to use from *_VecLenthType
Definition at line 114 of file FilterNTo2N.cpp.
|
inherited |
length = | fabs(gx) + fabs(gy) | destination absg must be initialized
Definition at line 140 of file FilterNTo2N.cpp.
References BIAS::ROI::GetCorners(), BIAS::Image< StorageType >::GetImageDataArray(), BIAS::ImageBase::GetROI(), and BIAS::ROI::SetCorners().
|
inherited |
length = sqrt(gx*gx+gy*gy) destination absg must be initialized
Definition at line 172 of file FilterNTo2N.cpp.
References BIAS::ROI::GetCorners(), BIAS::Image< StorageType >::GetImageDataArray(), BIAS::ImageBase::GetROI(), and BIAS::ROI::SetCorners().
|
inherited |
length = max(fabs(gx),fabs(gy)) destination absg must be initialized
Definition at line 205 of file FilterNTo2N.cpp.
References BIAS::ROI::GetCorners(), BIAS::Image< StorageType >::GetImageDataArray(), BIAS::ImageBase::GetROI(), and BIAS::ROI::SetCorners().
|
protected |
computation object to execute the convolution
Definition at line 84 of file GradientSobel3x3.hh.
|
protectedinherited |
Definition at line 132 of file FilterBase.hh.
Referenced by BIAS::FilterBase< InputStorageType, OutputStorageType >::FilterBase().
|
protected |
Definition at line 104 of file GradientSobel3x3.hh.
Referenced by BIAS::GradientSobel3x3< InputStorageType, OutputStorageType >::GradientSobel3x3().
|
protected |
Definition at line 104 of file GradientSobel3x3.hh.
Referenced by BIAS::GradientSobel3x3< InputStorageType, OutputStorageType >::GradientSobel3x3().
|
protected |
Definition at line 108 of file GradientSobel3x3.hh.
Referenced by BIAS::GradientSobel3x3< InputStorageType, OutputStorageType >::GradientSobel3x3().
|
protected |
Definition at line 107 of file GradientSobel3x3.hh.
Referenced by BIAS::GradientSobel3x3< InputStorageType, OutputStorageType >::GradientSobel3x3().
|
protected |
Definition at line 105 of file GradientSobel3x3.hh.
Referenced by BIAS::GradientSobel3x3< InputStorageType, OutputStorageType >::GradientSobel3x3().
|
protected |
Definition at line 105 of file GradientSobel3x3.hh.
Referenced by BIAS::GradientSobel3x3< InputStorageType, OutputStorageType >::GradientSobel3x3().
|
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=().
|
protectedinherited |
of type Gradient<InputStorageType, OutputStorageType>::EVecLengthType
Definition at line 107 of file FilterNTo2N.hh.
Referenced by BIAS::FilterNTo2N< InputStorageType, OutputStorageType >::FilterNTo2N().
|
staticprotectedinherited |
Definition at line 511 of file Debug.hh.
Referenced by BIAS::Debug::operator=().
|
staticprotectedinherited |