![]() |
ICF 3.1.1.10
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 |
Public Types inherited from iimg::CBitmapBase | |
| typedef i2d::CObject2dBase | BaseClass |
Public Types inherited from i2d::IObject2d | |
| enum | ChangeFlags { CF_OBJECT_POSITION = 0x6ba340 } |
Public Types inherited from istd::IChangeable | |
| 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... | |
Public Types inherited from iimg::IBitmap | |
| 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... | |
Public Types inherited from ialgo::TIHoughSpace< 2 > | |
| 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. | |
Public Member Functions inherited from iimg::CGeneralBitmap | |
| 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 |
Public Member Functions inherited from iimg::CBitmapBase | |
| 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. | |
Public Member Functions inherited from i2d::CObject2dBase | |
| 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) |
Public Member Functions inherited from i2d::IObject2d | |
Public Member Functions inherited from iser::IObject | |
| virtual QByteArray | GetFactoryId () const |
Public Member Functions inherited from iser::ISerializable | |
| virtual quint32 | GetMinimalVersion (int versionId) const |
| Get minimal needed version to correct storing of this data. | |
Public Member Functions inherited from istd::IChangeable | |
| 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. | |
Public Member Functions inherited from i2d::ICalibration2dProvider | |
Public Member Functions inherited from iimg::IBitmap | |
Public Member Functions inherited from iimg::IRasterImage | |
Public Member Functions inherited from ialgo::TIHoughSpace< 2 > | |
| 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 Public Member Functions inherited from istd::IChangeable | |
| 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. | |
Protected Member Functions inherited from iimg::CGeneralBitmap | |
| 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. | |
Protected Member Functions inherited from istd::IChangeable | |
| virtual void | OnBeginChanges () |
| Callback function for begin change event. | |
| virtual void | OnEndChanges (const ChangeSet &changeSet) |
| Callback function for end change event. | |
Static Protected Attributes inherited from i2d::CObject2dBase | |
| 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