|
Jafar
|
uniform grid 3D it is formed of Grid3DCell we use a Image3D to build the grid we use RansacPlane to fit the plane in each cell More...
uniform grid 3D it is formed of Grid3DCell we use a Image3D to build the grid we use RansacPlane to fit the plane in each cell
Definition at line 27 of file grid3D.hpp.
#include <grid3D.hpp>
Public Member Functions | |
| void | build (Image3D &im3d, double dbStep) |
| build the grid3D using an Image3D and a step = cube width | |
| void | initialize (int nX, int nY, int nZ, double minX_, double minY_, double minZ_, double stepX_, double stepY_, double stepZ_) |
| initialize the data members it is called within build if build if not used, you must explicitly call this function | |
| void | fillGrid (::std::vector< Point3D > *ppoints) |
| distribute points onto the cells | |
| void | colorizeImage3D (char *fileName, char *outputIndeces) |
| void | loadBrutImage (char *fileName) |
| void | extractFloor (double delta, bool removeInnerPoints) |
| void | prepareHoughAccumulator (float fRhoMax, float rhoStep, float angleStep, bool withSave=false, char *fileName=NULL) |
| void | extractBigerHoughPlane3D (int maxRho=25, float rhoStep=0.02, float angleStep=5) |
| void | extractHoughPlanes3D (int maxRho=25, float rhoStep=0.02, float angleStep=5, float fThresholdOfMaxVote=0.5, float fMinDistanceOfTowPlane=0.10, float fMinCosDihedralAngle=0.975, int nMaxPlaneNumber=30) |
| void | extractProgProbHoughPlanes3D (int maxRho=25, float rhoStep=0.02, float angleStep=5, float fThresholdOfMaxVote=0.5, float fMinDistanceOfTowPlane=0.10, float fMinCosDihedralAngle=0.025, int nMaxPlaneNumber=30, int minPointNumberThreshold=50, int minFinalVoteThreshold=100, char *planeFileName="plane.txt") |
| void | savePlanesCornersToFile (char *fileName) |
| void | savePlanesEquations (std::vector< Plane3D > &vPlane3D, int nMaxPlaneNumber, char *fileName) |
| Grid3DCell * | operator() (int i, int j, int k) |
| void | savePlanesToFile (char *fileName) |
| wrtie the extracted planes 3D to a file | |
| void | reducePlanesNumber (double distThreshold, double cosDihedralThreshold, int nPower) |
| void | extractPlaneInCellsMLSE () |
| Extract a Plane in each cell if there is a plane using Min Least Square Error. | |
| void | extractPlaneInCellsEKFI () |
| Extract a Plane in each cell if there is a plane using Extended Kalman Filter (Implicit) | |
| void | bestPlaneMinLeastSquares (std::vector< int > &pointIndex, Plane3D &plane3D) |
| extract the best "Min Least Square Error" plane passing throuth the points indexed by the vector | |
| void | bestPlaneEKFI (std::vector< int > &pointIndex, Plane3D &plane3D) |
| extract the best plane using EKF | |
| void | planeEKFI (std::vector< int > &pointIndex, double abcE[5], int nPlaneType) |
| extract the plane using EKF | |
| void | planeMinLeastSquares (std::vector< int > &pointIndex, double abcE[5], int type) |
| extract the best "MinLeast square Error" plane of given type | |
| void | info () |
| print info | |
| RansacPlane * | getRansac () |
| return a pointer to the RansacPlane data member | |
Public Attributes | |
| std::vector< float > | m_vColor |
| unsigned char * | pImage_BRUT |
| int | m_nWidth_BRUT |
| int | m_nHeight_BRUT |
| Plane3D | m_plane3dFloor |
| int *** | m_pAccumulator |
| int | m_nRho |
| int | m_nPhi |
| int | m_nTheta |
| int | m_nMaxVote |
| Plane3D | m_BiggerPlane3D |
| std::vector< Point3D > | vP1 |
| std::vector< Point3D > | vP2 |
| std::vector< Point3D > | vP3 |
| std::vector< Point3D > | vP4 |
| ::std::vector< Grid3DCell > | m_vCells |
| vector of cells | |
| ::std::vector< Point3D > * | m_pPoints |
| pointer the a vector containg the point3D | |
| RansacPlane | m_RansacPlane |
| RansacPlane object. | |
| int | m_nNX |
| number of cells in x, y and z directions | |
| int | m_nNY |
| int | m_nNZ |
| double | m_dbStepX |
| step in X,Y and Z directions | |
| double | m_dbStepY |
| double | m_dbStepZ |
| double | m_dbMinX |
| the mimimum value fo X,Y and Z used in filling the grid | |
| double | m_dbMinY |
| double | m_dbMinZ |
| void jafar::model3d::Grid3D::bestPlaneEKFI | ( | std::vector< int > & | pointIndex, |
| Plane3D & | plane3D | ||
| ) |
extract the best plane using EKF
| void jafar::model3d::Grid3D::bestPlaneMinLeastSquares | ( | std::vector< int > & | pointIndex, |
| Plane3D & | plane3D | ||
| ) |
extract the best "Min Least Square Error" plane passing throuth the points indexed by the vector
we call planeMinLeastSquares for the three type and take the best one.
Extract a Plane in each cell if there is a plane using Extended Kalman Filter (Implicit)
Extract a Plane in each cell if there is a plane using Min Least Square Error.
| void jafar::model3d::Grid3D::info | ( | ) |
print info
| Grid3DCell* jafar::model3d::Grid3D::operator() | ( | int | i, |
| int | j, | ||
| int | k | ||
| ) | [inline] |
Definition at line 138 of file grid3D.hpp.
References m_vCells.
| void jafar::model3d::Grid3D::planeEKFI | ( | std::vector< int > & | pointIndex, |
| double | abcE[5], | ||
| int | nPlaneType | ||
| ) |
extract the plane using EKF
| void jafar::model3d::Grid3D::planeMinLeastSquares | ( | std::vector< int > & | pointIndex, |
| double | abcE[5], | ||
| int | type | ||
| ) |
extract the best "MinLeast square Error" plane of given type
type = 0 : normal Equation of the plane : general form
w = abcE[0]*u + abcE[1]*v + abcE[2]
| puu puv pu | | abcE[0] | | puw | | puv pvv pv | * | abcE[1] | = | pvw | | pu pv 1 | | abcE[2] | | pw |
<=> A * abcE = B => abcE = A-1 * B
type 0: x = abcE[0]*y + abcE[1]*z + abcE[2] type 1: y = abcE[0]*x + abcE[1]*z + abcE[2] type 2: z = abcE[0]*x + abcE[1]*y + abcE[2]
| void jafar::model3d::Grid3D::savePlanesToFile | ( | char * | fileName | ) |
wrtie the extracted planes 3D to a file
| Generated on Wed Oct 15 2014 00:37:42 for Jafar by doxygen 1.7.6.1 |
|