![]() |
ICF 3.0.5.47
Technical documentation of ICF Libraries
|
Hough space used for 2d Hough transformations. More...
#include <CHoughSpace2d.h>
Public Types | |
typedef iimg::CGeneralBitmap | BaseClass |
typedef TSimpleSpaceResultConsumer< 2 > | StdConsumer |
![]() | |
typedef i2d::CObject2dBase | BaseClass |
![]() | |
enum | ChangeFlags { CF_OBJECT_POSITION = 0x6ba340 } |
![]() | |
enum | ChangeFlags { CF_ICF_INTERNAL = 0 , CF_ALL_DATA , CF_ANY , CF_DESTROYING , CF_DELEGATED , CF_NO_UNDO } |
Data model change notification flags. More... | |
enum | SupportedOperations { SO_NONE = 0 , SO_OBSERVE = 1 << 0 , SO_COPY = 1 << 1 , SO_CLONE = 1 << 2 , SO_COMPARE = 1 << 3 , SO_RESET = 1 << 4 , SO_CHANGE_LOCK = 1 << 5 } |
Flags for supported operations. More... | |
enum | CompatibilityMode { CM_STRICT , CM_WITHOUT_REFS , CM_WITH_REFS , CM_CONVERT } |
Control how relationship betweeen objects are interpreted. More... | |
![]() | |
enum | PixelFormat { PF_UNKNOWN = 0 , PF_MONO , PF_GRAY , PF_RGB , PF_RGBA , PF_RGB24 , PF_GRAY16 , PF_GRAY32 , PF_FLOAT32 , PF_FLOAT64 , PF_XYZ32 , PF_XY32 , PF_USER = 256 } |
Bitmap pixel format description. More... | |
![]() | |
enum | ExtensionMode |
Describe how the space is extended, it means how the area outside of space should be interpreted. More... | |
Public Member Functions | |
CHoughSpace2d () | |
CHoughSpace2d (const istd::CIndex2d &size, bool isWrappedX=false, bool isWrappedY=false) | |
bool | CreateHoughSpace (const istd::CIndex2d &size, bool isWrappedX, bool isWrappedY, bool isFloatSpace) |
void | SetDimensionWrapped (int dimensionIndex, bool state) |
Set if this space to be wrapped horizontaly or not. | |
template<typename Operation > | |
void | ApplyOperation (Operation operation) |
Apply some operation to each element. | |
template<typename Operation > | |
void | CombineWithSpace (const CHoughSpace2d &space, Operation operation) |
Combine this space with some other space. | |
virtual istd::TIndex< 2 > | GetSpaceSize () const |
Get size of this Hough space. | |
virtual bool | CreateHoughSpace (const istd::TIndex< 2 > &size, const double &initValue=0) |
virtual bool | IsDimensionWrapped (int dimensionIndex) const |
Check if this space is wrapped horizontaly, it means the the left pixel is neighbour of the right one. | |
virtual ExtensionMode | GetExtensionMode (int dimensionIndex) const |
Get extension mode for single dimension. | |
virtual void | IncreaseValueAt (const imath::TVector< 2 > &position, double value) |
virtual void | SmoothHoughSpace (const istd::TIndex< 2 > &iterations) |
virtual bool | AnalyseHoughSpace (const double &minValue, ResultsConsumer &resultProcessor) const |
Analyse this Hough space to find set of local maximums. | |
virtual bool | ExtractToBitmap (iimg::IBitmap &bitmap) const |
Extract this Hough space to some gray scale bitmap. | |
virtual bool | GetSpacePosition (const imath::TVector< 2 > &position, imath::TVector< 2 > &result) const |
virtual double | GetSpaceDistance (const imath::TVector< 2 > &position1, const imath::TVector< 2 > &position2) const |
virtual double | GetSpaceDistance2 (const imath::TVector< 2 > &position1, const imath::TVector< 2 > &position2) const |
virtual bool | CreateBitmap (PixelFormat pixelFormat, const istd::CIndex2d &size, int pixelBitsCount=0, int componentsCount=0) |
Create bitmap with specified size and format. | |
virtual bool | CreateBitmap (PixelFormat pixelFormat, const istd::CIndex2d &size, istd::COptMemory &&data, int linesDifference=0) |
Create bitmap with specified size and format using external image data buffer. | |
![]() | |
CGeneralBitmap () | |
CGeneralBitmap (const CGeneralBitmap &bitmap) | |
bool | IsFormatSupported (PixelFormat pixelFormat) const override |
Get true if the pixel format is supported by the bitmap implementation. | |
PixelFormat | GetPixelFormat () const override |
Get the bitmap's pixel format. | |
int | GetLinesDifference () const override |
Get address difference between next and previous line. | |
int | GetPixelsDifference () const override |
Get address difference between next and previous pixel. | |
int | GetPixelBitsCount () const override |
Get total number of bits per single pixel. | |
const void * | GetLinePtr (int positionY) const override |
Get pointer to buffer for single line. | |
void * | GetLinePtr (int positionY) override |
Get pointer to buffer for single line. | |
void | ResetImage () override |
Reset this image. | |
void | ClearImage () override |
Cleat this image. | |
istd::CIndex2d | GetImageSize () const override |
Get size of this raster image. | |
int | GetComponentsCount () const override |
Get number of color components. | |
int | GetSupportedOperations () const override |
Get set of flags for supported operations. | |
bool | CopyFrom (const istd::IChangeable &object, CompatibilityMode mode=CM_WITHOUT_REFS) override |
Copy this object from another one. | |
std::unique_ptr< istd::IChangeable > | CloneMe (CompatibilityMode mode=CM_WITHOUT_REFS) const override |
Make a copy of this object. | |
CGeneralBitmap & | operator= (const CGeneralBitmap &bitmap) |
CGeneralBitmap & | operator= (CGeneralBitmap &&bitmap) |
bool | operator== (const CGeneralBitmap &bitmap) const |
bool | operator!= (const CGeneralBitmap &bitmap) const |
![]() | |
virtual bool | CreateImageFromRegion (const iimg::IBitmap &sourceBitmap, const i2d::CRect ®ion) |
i2d::CVector2d | GetCenter () const override |
Returns center of this 2D-object. | |
void | MoveCenterTo (const i2d::CVector2d &position) override |
Move object to position position . | |
i2d::CRectangle | GetBoundingBox () const override |
Get bounding box of this shape. | |
int | GetLineBytesCount () const override |
Number of bytes per single line. | |
int | GetComponentBitsCount (int componentIndex=0) const override |
Get number of bits per single pixel component. | |
bool | IsEmpty () const override |
Return true if this image is empty. | |
icmm::CVarColor | GetColorAt (const istd::CIndex2d &position) const override |
Get color at specified pixel. | |
bool | SetColorAt (const istd::CIndex2d &position, const icmm::CVarColor &color) override |
Set color at specified pixel. | |
bool | Serialize (iser::IArchive &archive) override |
Load or store state of this object as a archive stream. | |
bool | ResetData (CompatibilityMode mode=CM_WITHOUT_REFS) override |
Reset data to its default state. | |
![]() | |
CObject2dBase () | |
CObject2dBase (const CObject2dBase &object2d) | |
CObject2dBase (CObject2dBase &&object2d) | |
const ICalibration2d * | GetCalibration () const override |
Get access to transformation object, which transforms a local logical coordinate system to global one. | |
void | SetCalibration (istd::TOptDelPtr< const ICalibration2d > &&calibrationPtr) override |
Set calibration of this object. | |
bool | Transform (const ITransformation2d &transformation, ITransformation2d::ExactnessMode mode=ITransformation2d::EM_NONE, double *errorFactorPtr=nullptr) override |
Transform this object using some transformation. | |
bool | InvTransform (const ITransformation2d &transformation, ITransformation2d::ExactnessMode mode=ITransformation2d::EM_NONE, double *errorFactorPtr=nullptr) override |
Do inverse transformation of this object. | |
bool | GetTransformed (const ITransformation2d &transformation, IObject2d &result, ITransformation2d::ExactnessMode mode=ITransformation2d::EM_NONE, double *errorFactorPtr=nullptr) const override |
Calulate transformation of the object into second one. | |
bool | GetInvTransformed (const ITransformation2d &transformation, IObject2d &result, ITransformation2d::ExactnessMode mode=ITransformation2d::EM_NONE, double *errorFactorPtr=nullptr) const override |
Calulate inverse transformation of the object into second one. | |
bool | CopyFrom (const istd::IChangeable &object, CompatibilityMode mode=CM_WITHOUT_REFS) override |
Copy this object from another one. | |
bool | ResetData (CompatibilityMode mode=CM_WITHOUT_REFS) override |
Reset data to its default state. | |
CObject2dBase & | operator= (const CObject2dBase &object2d) |
CObject2dBase & | operator= (CObject2dBase &&object2d) |
![]() | |
![]() | |
virtual QByteArray | GetFactoryId () const |
![]() | |
virtual quint32 | GetMinimalVersion (int versionId) const |
Get minimal needed version to correct storing of this data. | |
![]() | |
virtual bool | IsEqual (const IChangeable &object) const |
Compare this object with another object. | |
virtual QMutex * | GetChangesLock () const |
Get mutex beeing locked during changes, if available. | |
virtual void | BeginChanges (const ChangeSet &changeSet) |
Starts the change transaction. | |
virtual void | EndChanges (const ChangeSet &changeSet) |
Ends the change transaction. | |
virtual void | BeginChangeGroup (const ChangeSet &changeSet) |
Starts group of changes. | |
virtual void | EndChangeGroup (const ChangeSet &changeSet) |
Ends group of changes. | |
![]() | |
![]() | |
![]() | |
![]() | |
virtual bool | CreateHoughSpace (const istd::TIndex< Dimensions > &size, const double &initValue=0)=0 |
Create Hough space with specified size. | |
virtual void | IncreaseValueAt (const imath::TVector< Dimensions > &position, double value)=0 |
Increase the value at specified position. | |
virtual void | SmoothHoughSpace (const istd::TIndex< Dimensions > &iterations)=0 |
Smooth this space with specified stronness. | |
virtual bool | GetSpacePosition (const imath::TVector< Dimensions > &position, imath::TVector< Dimensions > &result) const=0 |
Get position in space for some input. | |
virtual double | GetSpaceDistance (const imath::TVector< Dimensions > &position1, const imath::TVector< Dimensions > &position2) const=0 |
Get distance between two hough space positions considering the space wrapping. | |
virtual double | GetSpaceDistance2 (const imath::TVector< Dimensions > &position1, const imath::TVector< Dimensions > &position2) const=0 |
Get square of distance between two hough space positions considering the space wrapping. | |
Additional Inherited Members | |
![]() | |
static const ChangeSet & | GetNoChanges () |
Get empty set of changes. | |
static const ChangeSet & | GetAnyChange () |
Get anonymous change set. | |
static const ChangeSet & | GetAllChanges () |
Get anonymous change set. | |
static const ChangeSet & | GetDelegatedChanges () |
Get delegated change set. | |
![]() | |
virtual bool | CreateBitmapInternal (const istd::CIndex2d &size, int pixelBitsCount, int componentsCount, PixelFormat pixelFormat) |
Create bitmap with specified size, number of bits per pixel and components number per pixel. | |
virtual bool | CreateBitmapInternal (const istd::CIndex2d &size, istd::COptMemory &&data, int linesDifference, int pixelBitsCount, int componentsCount, PixelFormat pixelFormat) |
Create bitmap using external image buffer. | |
![]() | |
virtual void | OnBeginChanges () |
Callback function for begin change event. | |
virtual void | OnEndChanges (const ChangeSet &changeSet) |
Callback function for end change event. | |
![]() | |
static const ChangeSet | s_objectMovedChange |
static const ChangeSet | s_objectModifiedChange |
Hough space used for 2d Hough transformations.
Definition at line 29 of file CHoughSpace2d.h.
Definition at line 34 of file CHoughSpace2d.h.
Definition at line 36 of file CHoughSpace2d.h.
ialgo::CHoughSpace2d::CHoughSpace2d | ( | ) |
ialgo::CHoughSpace2d::CHoughSpace2d | ( | const istd::CIndex2d & | size, |
bool | isWrappedX = false, | ||
bool | isWrappedY = false ) |
|
virtual |
Analyse this Hough space to find set of local maximums.
minValue | minimal value of hough at point. |
resultProcessor | will be called for each maximum. |
Implements ialgo::TIHoughSpace< 2 >.
void ialgo::CHoughSpace2d::ApplyOperation | ( | Operation | operation | ) |
Apply some operation to each element.
Definition at line 119 of file CHoughSpace2d.h.
References iimg::CGeneralBitmap::GetImageSize(), iimg::CGeneralBitmap::GetLinePtr(), iimg::CGeneralBitmap::GetPixelFormat(), istd::CIndex2d::GetX(), istd::CIndex2d::GetY(), iimg::IBitmap::PF_FLOAT32, and iimg::IBitmap::PF_GRAY32.
void ialgo::CHoughSpace2d::CombineWithSpace | ( | const CHoughSpace2d & | space, |
Operation | operation ) |
Combine this space with some other space.
Definition at line 144 of file CHoughSpace2d.h.
References iimg::CGeneralBitmap::GetImageSize(), iimg::CGeneralBitmap::GetLinePtr(), iimg::CGeneralBitmap::GetPixelFormat(), istd::CIndex2d::GetX(), istd::CIndex2d::GetY(), iimg::IBitmap::PF_FLOAT32, and iimg::IBitmap::PF_GRAY32.
|
virtual |
Create bitmap with specified size and format.
pixelFormat | bitmap format. |
size | bitmap size. |
pixelBitsCount | bits per pixel. Default value 0 means that the number of bits per pixel is defined by format specification. |
componentsCount | components per pixel. Default value 0 means that the number of bits per pixel is defined by format specification. |
Reimplemented from iimg::CGeneralBitmap.
|
virtual |
Create bitmap with specified size and format using external image data buffer.
pixelFormat | bitmap format. |
size | bitmap size. |
data | external image buffer. |
linesDifference | address difference between next and previos line. If it equals 0, the value will be taken from size and number of bits per pixel. |
Reimplemented from iimg::CGeneralBitmap.
bool ialgo::CHoughSpace2d::CreateHoughSpace | ( | const istd::CIndex2d & | size, |
bool | isWrappedX, | ||
bool | isWrappedY, | ||
bool | isFloatSpace ) |
|
virtual |
|
virtual |
Extract this Hough space to some gray scale bitmap.
Implements ialgo::TIHoughSpace< 2 >.
|
virtual |
Get extension mode for single dimension.
Implements ialgo::TIHoughSpace< 2 >.
|
inlinevirtual |
Definition at line 91 of file CHoughSpace2d.h.
References GetSpaceDistance2().
|
inlinevirtual |
Definition at line 97 of file CHoughSpace2d.h.
References iimg::CGeneralBitmap::GetImageSize(), imath::TVector< Size, Element >::GetLength2(), i2d::CVector2d::GetX(), istd::CIndex2d::GetX(), i2d::CVector2d::GetY(), istd::CIndex2d::GetY(), i2d::CVector2d::SetX(), and i2d::CVector2d::SetY().
Referenced by GetSpaceDistance().
|
virtual |
|
virtual |
Get size of this Hough space.
Implements ialgo::TIHoughSpace< 2 >.
|
virtual |
|
virtual |
Check if this space is wrapped horizontaly, it means the the left pixel is neighbour of the right one.
Implements ialgo::TIHoughSpace< 2 >.
void ialgo::CHoughSpace2d::SetDimensionWrapped | ( | int | dimensionIndex, |
bool | state ) |
Set if this space to be wrapped horizontaly or not.
Space is horizonally wrapped if the left pixel is neighbour of the right one.
|
virtual |
© Witold Gantzke and Kirill Lepskiy