![]() |
Visual Servoing Platform version 3.6.0
|
#include <vpMbtFaceDepthDense.h>
Public Types | |
| enum | vpDepthDenseFilteringType { NO_FILTERING = 0 , DEPTH_OCCUPANCY_RATIO_FILTERING = 1 << 1 , MIN_DISTANCE_FILTERING = 1 << 2 , MAX_DISTANCE_FILTERING = 1 << 3 } |
Public Member Functions | |
| vpMbtFaceDepthDense () | |
| virtual | ~vpMbtFaceDepthDense () |
| void | addLine (vpPoint &p1, vpPoint &p2, vpMbHiddenFaces< vpMbtPolygon > *const faces, vpUniRand &rand_gen, int polygon=-1, std::string name="") |
| bool | computeDesiredFeatures (const vpHomogeneousMatrix &cMo, const pcl::PointCloud< pcl::PointXYZ >::ConstPtr &point_cloud, unsigned int stepX, unsigned int stepY, const vpImage< bool > *mask=NULL) |
| bool | computeDesiredFeatures (const vpHomogeneousMatrix &cMo, unsigned int width, unsigned int height, const std::vector< vpColVector > &point_cloud, unsigned int stepX, unsigned int stepY, const vpImage< bool > *mask=NULL) |
| void | computeInteractionMatrixAndResidu (const vpHomogeneousMatrix &cMo, vpMatrix &L, vpColVector &error) |
| void | computeVisibility () |
| void | computeVisibilityDisplay () |
| void | display (const vpImage< unsigned char > &I, const vpHomogeneousMatrix &cMo, const vpCameraParameters &cam, const vpColor &col, unsigned int thickness=1, bool displayFullModel=false) |
| void | display (const vpImage< vpRGBa > &I, const vpHomogeneousMatrix &cMo, const vpCameraParameters &cam, const vpColor &col, unsigned int thickness=1, bool displayFullModel=false) |
| void | displayFeature (const vpImage< unsigned char > &I, const vpHomogeneousMatrix &cMo, const vpCameraParameters &cam, double scale=0.05, unsigned int thickness=1) |
| void | displayFeature (const vpImage< vpRGBa > &I, const vpHomogeneousMatrix &cMo, const vpCameraParameters &cam, double scale=0.05, unsigned int thickness=1) |
| std::vector< std::vector< double > > | getModelForDisplay (unsigned int width, unsigned int height, const vpHomogeneousMatrix &cMo, const vpCameraParameters &cam, bool displayFullModel=false) |
| unsigned int | getNbFeatures () const |
| bool | isTracked () const |
| bool | isVisible () const |
| void | setCameraParameters (const vpCameraParameters &camera) |
| void | setScanLineVisibilityTest (bool v) |
| void | setDepthDenseFilteringMaxDistance (double maxDistance) |
| void | setDepthDenseFilteringMethod (int method) |
| void | setDepthDenseFilteringMinDistance (double minDistance) |
| void | setDepthDenseFilteringOccupancyRatio (double occupancyRatio) |
| void | setTracked (bool tracked) |
Public Attributes | |
| vpCameraParameters | m_cam |
| unsigned int | m_clippingFlag |
| double | m_distFarClip |
| double | m_distNearClip |
| vpMbHiddenFaces< vpMbtPolygon > * | m_hiddenFace |
| vpPlane | m_planeObject |
| vpMbtPolygon * | m_polygon |
| bool | m_useScanLine |
Protected Member Functions | |
| void | computeROI (const vpHomogeneousMatrix &cMo, unsigned int width, unsigned int height, std::vector< vpImagePoint > &roiPts, double &distanceToFace) |
| bool | samePoint (const vpPoint &P1, const vpPoint &P2) const |
Protected Attributes | |
| int | m_depthDenseFilteringMethod |
| double | m_depthDenseFilteringMaxDist |
| double | m_depthDenseFilteringMinDist |
| double | m_depthDenseFilteringOccupancyRatio |
| bool | m_isTrackedDepthDenseFace |
| bool | m_isVisible |
| std::vector< vpMbtDistanceLine * > | m_listOfFaceLines |
| vpPlane | m_planeCamera |
| std::vector< double > | m_pointCloudFace |
| std::vector< PolygonLine > | m_polygonLines |
Definition at line 53 of file vpMbtFaceDepthDense.h.
Definition at line 56 of file vpMbtFaceDepthDense.h.
| vpMbtFaceDepthDense::vpMbtFaceDepthDense | ( | ) |
Definition at line 160 of file vpMbtFaceDepthDense.cpp.
|
virtual |
Definition at line 169 of file vpMbtFaceDepthDense.cpp.
References m_listOfFaceLines.
| void vpMbtFaceDepthDense::addLine | ( | vpPoint & | P1, |
| vpPoint & | P2, | ||
| vpMbHiddenFaces< vpMbtPolygon > *const | faces, | ||
| vpUniRand & | rand_gen, | ||
| int | polygon = -1, |
||
| std::string | name = "" |
||
| ) |
Add a line belonging to the 
If the line already exists, the ploygone's index is added to the list of polygon to which it belongs.
| P1 | : The first extremity of the line. |
| P2 | : The second extremity of the line. |
| faces | : Pointer to vpMbHiddenFaces. |
| rand_gen | : Random number generator used in vpMbtDistanceLine::buildFrom(). |
| polygon | : The index of the polygon to which the line belongs. |
| name | : the optional name of the line |
Definition at line 190 of file vpMbtFaceDepthDense.cpp.
References vpMbtDistanceLine::addPolygon(), vpMbtDistanceLine::buildFrom(), vpPolygon3D::FAR_CLIPPING, vpMbtDistanceLine::getPolygon(), vpMbtDistanceLine::hiddenface, m_cam, m_clippingFlag, m_distFarClip, m_distNearClip, m_listOfFaceLines, m_polygonLines, m_useScanLine, vpPolygon3D::NEAR_CLIPPING, vpPolygon3D::NO_CLIPPING, vpMbtDistanceLine::p1, vpMbtDistanceLine::p2, samePoint(), vpMbtDistanceLine::setCameraParameters(), vpPolygon3D::setClipping(), vpPolygon3D::setFarClippingDistance(), vpMbtDistanceLine::setIndex(), vpMbtDistanceLine::setName(), vpPolygon3D::setNearClippingDistance(), and vpMbtDistanceLine::useScanLine.
Referenced by vpMbDepthDenseTracker::addFace().
| bool vpMbtFaceDepthDense::computeDesiredFeatures | ( | const vpHomogeneousMatrix & | cMo, |
| const pcl::PointCloud< pcl::PointXYZ >::ConstPtr & | point_cloud, | ||
| unsigned int | stepX, | ||
| unsigned int | stepY, | ||
| const vpImage< bool > * | mask = NULL |
||
| ) |
Definition at line 251 of file vpMbtFaceDepthDense.cpp.
References computeROI(), DEPTH_OCCUPANCY_RATIO_FILTERING, vpRect::getBottom(), vpPolygon::getBoundingBox(), vpRect::getHeight(), vpMbtPolygon::getIndex(), vpRect::getLeft(), vpMbHiddenFaces< PolygonType >::getMbScanLineRenderer(), vpRect::getRight(), vpRect::getTop(), vpRect::getWidth(), vpMeTracker::inMask(), vpPolygon::isInside(), m_depthDenseFilteringMaxDist, m_depthDenseFilteringMethod, m_depthDenseFilteringMinDist, m_depthDenseFilteringOccupancyRatio, m_hiddenFace, m_pointCloudFace, m_polygon, m_useScanLine, MAX_DISTANCE_FILTERING, MIN_DISTANCE_FILTERING, vpRect::setBottom(), vpRect::setLeft(), vpRect::setRight(), and vpRect::setTop().
Referenced by vpMbDepthDenseTracker::segmentPointCloud(), and vpMbDepthDenseTracker::segmentPointCloud().
| bool vpMbtFaceDepthDense::computeDesiredFeatures | ( | const vpHomogeneousMatrix & | cMo, |
| unsigned int | width, | ||
| unsigned int | height, | ||
| const std::vector< vpColVector > & | point_cloud, | ||
| unsigned int | stepX, | ||
| unsigned int | stepY, | ||
| const vpImage< bool > * | mask = NULL |
||
| ) |
Definition at line 342 of file vpMbtFaceDepthDense.cpp.
References computeROI(), DEPTH_OCCUPANCY_RATIO_FILTERING, vpRect::getBottom(), vpPolygon::getBoundingBox(), vpRect::getHeight(), vpMbtPolygon::getIndex(), vpRect::getLeft(), vpMbHiddenFaces< PolygonType >::getMbScanLineRenderer(), vpRect::getRight(), vpRect::getTop(), vpRect::getWidth(), vpMeTracker::inMask(), vpPolygon::isInside(), m_depthDenseFilteringMaxDist, m_depthDenseFilteringMethod, m_depthDenseFilteringMinDist, m_depthDenseFilteringOccupancyRatio, m_hiddenFace, m_pointCloudFace, m_polygon, m_useScanLine, MAX_DISTANCE_FILTERING, MIN_DISTANCE_FILTERING, vpRect::setBottom(), vpRect::setLeft(), vpRect::setRight(), and vpRect::setTop().
| void vpMbtFaceDepthDense::computeInteractionMatrixAndResidu | ( | const vpHomogeneousMatrix & | cMo, |
| vpMatrix & | L, | ||
| vpColVector & | error | ||
| ) |
Definition at line 462 of file vpMbtFaceDepthDense.cpp.
References vpPlane::changeFrame(), vpCPUFeatures::checkNeon(), vpCPUFeatures::checkSSE2(), vpArray2D< Type >::data, vpPlane::getA(), vpPlane::getB(), vpPlane::getC(), vpPlane::getD(), getNbFeatures(), m_planeCamera, m_planeObject, m_pointCloudFace, vpColVector::resize(), and vpColVector::t().
Referenced by vpMbDepthDenseTracker::computeVVSInteractionMatrixAndResidu().
|
protected |
Definition at line 679 of file vpMbtFaceDepthDense.cpp.
References vpCameraParameters::computeFov(), vpMbHiddenFaces< PolygonType >::computeScanLineQuery(), vpMeterPixelConversion::convertPoint(), vpPolygon3D::DOWN_CLIPPING, vpPolygon3D::FAR_CLIPPING, vpPoint::get_X(), vpPoint::get_Y(), vpPoint::get_Z(), vpPolygon3D::getPolygonClipped(), vpPolygon3D::getRoiClipped(), vpPolygon3D::LEFT_CLIPPING, m_cam, m_clippingFlag, m_hiddenFace, m_polygon, m_polygonLines, m_useScanLine, vpPolygon3D::NEAR_CLIPPING, vpForwardProjection::project(), vpPolygon3D::RIGHT_CLIPPING, vpPoint::set_X(), vpPoint::set_Y(), vpPoint::set_Z(), and vpPolygon3D::UP_CLIPPING.
Referenced by computeDesiredFeatures(), and computeDesiredFeatures().
| void vpMbtFaceDepthDense::computeVisibility | ( | ) |
Definition at line 427 of file vpMbtFaceDepthDense.cpp.
References vpMbtPolygon::isVisible(), m_isVisible, and m_polygon.
Referenced by vpMbDepthDenseTracker::computeVisibility().
| void vpMbtFaceDepthDense::computeVisibilityDisplay | ( | ) |
Definition at line 429 of file vpMbtFaceDepthDense.cpp.
References vpMbtDistanceLine::hiddenface, vpMbHiddenFaces< PolygonType >::isVisible(), vpMbtDistanceLine::Lindex_polygon, m_listOfFaceLines, and vpMbtDistanceLine::setVisible().
Referenced by getModelForDisplay().
| void vpMbtFaceDepthDense::display | ( | const vpImage< unsigned char > & | I, |
| const vpHomogeneousMatrix & | cMo, | ||
| const vpCameraParameters & | cam, | ||
| const vpColor & | col, | ||
| unsigned int | thickness = 1, |
||
| bool | displayFullModel = false |
||
| ) |
Definition at line 786 of file vpMbtFaceDepthDense.cpp.
References vpDisplay::displayLine(), vpImage< Type >::getHeight(), getModelForDisplay(), and vpImage< Type >::getWidth().
| void vpMbtFaceDepthDense::display | ( | const vpImage< vpRGBa > & | I, |
| const vpHomogeneousMatrix & | cMo, | ||
| const vpCameraParameters & | cam, | ||
| const vpColor & | col, | ||
| unsigned int | thickness = 1, |
||
| bool | displayFullModel = false |
||
| ) |
Definition at line 800 of file vpMbtFaceDepthDense.cpp.
References vpDisplay::displayLine(), vpImage< Type >::getHeight(), getModelForDisplay(), and vpImage< Type >::getWidth().
| void vpMbtFaceDepthDense::displayFeature | ( | const vpImage< unsigned char > & | I, |
| const vpHomogeneousMatrix & | cMo, | ||
| const vpCameraParameters & | cam, | ||
| double | scale = 0.05, |
||
| unsigned int | thickness = 1 |
||
| ) |
Definition at line 814 of file vpMbtFaceDepthDense.cpp.
| void vpMbtFaceDepthDense::displayFeature | ( | const vpImage< vpRGBa > & | I, |
| const vpHomogeneousMatrix & | cMo, | ||
| const vpCameraParameters & | cam, | ||
| double | scale = 0.05, |
||
| unsigned int | thickness = 1 |
||
| ) |
Definition at line 820 of file vpMbtFaceDepthDense.cpp.
| std::vector< std::vector< double > > vpMbtFaceDepthDense::getModelForDisplay | ( | unsigned int | width, |
| unsigned int | height, | ||
| const vpHomogeneousMatrix & | cMo, | ||
| const vpCameraParameters & | cam, | ||
| bool | displayFullModel = false |
||
| ) |
Return a list of line parameters to display the primitive at a given pose and camera parameters.
<primitive id (here 0 for line)>, <pt_start.i()>, <pt_start.j()>, <pt_end.i()>, <pt_end.j()>| width | : Image width. |
| height | : Image height. |
| cMo | : Pose used to project the 3D model into the image. |
| cam | : The camera parameters. |
| displayFullModel | : If true, the line is displayed even if it is not |
Definition at line 837 of file vpMbtFaceDepthDense.cpp.
References computeVisibilityDisplay(), vpMbtDistanceLine::getModelForDisplay(), vpMbtPolygon::isVisible(), m_isTrackedDepthDenseFace, m_listOfFaceLines, and m_polygon.
Referenced by display(), display(), and vpMbDepthDenseTracker::getModelForDisplay().
|
inline |
Definition at line 129 of file vpMbtFaceDepthDense.h.
Referenced by computeInteractionMatrixAndResidu(), and vpMbDepthDenseTracker::computeVVSInit().
|
inline |
Definition at line 131 of file vpMbtFaceDepthDense.h.
Referenced by vpMbDepthDenseTracker::segmentPointCloud(), and vpMbDepthDenseTracker::segmentPointCloud().
|
inline |
Definition at line 133 of file vpMbtFaceDepthDense.h.
References vpMbtPolygon::isvisible.
Referenced by vpMbDepthDenseTracker::segmentPointCloud(), and vpMbDepthDenseTracker::segmentPointCloud().
Check if two vpPoints are similar.
To be similar : 
| P1 | : The first point to compare |
| P2 | : The second point to compare |
Definition at line 868 of file vpMbtFaceDepthDense.cpp.
References vpPoint::get_oX(), vpPoint::get_oY(), and vpPoint::get_oZ().
Referenced by addLine().
| void vpMbtFaceDepthDense::setCameraParameters | ( | const vpCameraParameters & | camera | ) |
Definition at line 881 of file vpMbtFaceDepthDense.cpp.
References m_cam, and m_listOfFaceLines.
|
inline |
Definition at line 139 of file vpMbtFaceDepthDense.h.
|
inline |
Definition at line 141 of file vpMbtFaceDepthDense.h.
|
inline |
Definition at line 143 of file vpMbtFaceDepthDense.h.
|
inline |
Definition at line 145 of file vpMbtFaceDepthDense.h.
| void vpMbtFaceDepthDense::setScanLineVisibilityTest | ( | bool | v | ) |
Definition at line 891 of file vpMbtFaceDepthDense.cpp.
References m_listOfFaceLines, and m_useScanLine.
|
inline |
Definition at line 154 of file vpMbtFaceDepthDense.h.
Referenced by vpMbDepthDenseTracker::setUseDepthDenseTracking().
| vpCameraParameters vpMbtFaceDepthDense::m_cam |
Camera intrinsic parameters.
Definition at line 68 of file vpMbtFaceDepthDense.h.
Referenced by vpMbDepthDenseTracker::addFace(), addLine(), computeROI(), and setCameraParameters().
| unsigned int vpMbtFaceDepthDense::m_clippingFlag |
Flags specifying which clipping to used.
Definition at line 70 of file vpMbtFaceDepthDense.h.
Referenced by vpMbDepthDenseTracker::addFace(), addLine(), and computeROI().
|
protected |
Maximum distance threshold.
Definition at line 202 of file vpMbtFaceDepthDense.h.
Referenced by computeDesiredFeatures(), and computeDesiredFeatures().
|
protected |
Method to use to consider or not the face.
Definition at line 200 of file vpMbtFaceDepthDense.h.
Referenced by computeDesiredFeatures(), and computeDesiredFeatures().
|
protected |
Minimum distance threshold.
Definition at line 204 of file vpMbtFaceDepthDense.h.
Referenced by computeDesiredFeatures(), and computeDesiredFeatures().
|
protected |
Ratio between available depth points and theoretical number of points.
Definition at line 206 of file vpMbtFaceDepthDense.h.
Referenced by computeDesiredFeatures(), and computeDesiredFeatures().
| double vpMbtFaceDepthDense::m_distFarClip |
Distance for near clipping.
Definition at line 72 of file vpMbtFaceDepthDense.h.
Referenced by vpMbDepthDenseTracker::addFace(), and addLine().
| double vpMbtFaceDepthDense::m_distNearClip |
Distance for near clipping.
Definition at line 74 of file vpMbtFaceDepthDense.h.
Referenced by vpMbDepthDenseTracker::addFace(), and addLine().
| vpMbHiddenFaces<vpMbtPolygon>* vpMbtFaceDepthDense::m_hiddenFace |
Pointer to the list of faces.
Definition at line 76 of file vpMbtFaceDepthDense.h.
Referenced by vpMbDepthDenseTracker::addFace(), computeDesiredFeatures(), computeDesiredFeatures(), and computeROI().
|
protected |
Flag to define if the face should be tracked or not.
Definition at line 208 of file vpMbtFaceDepthDense.h.
Referenced by getModelForDisplay().
|
protected |
Visibility flag.
Definition at line 210 of file vpMbtFaceDepthDense.h.
Referenced by computeVisibility().
|
protected |
Definition at line 211 of file vpMbtFaceDepthDense.h.
Referenced by addLine(), computeVisibilityDisplay(), getModelForDisplay(), setCameraParameters(), setScanLineVisibilityTest(), and ~vpMbtFaceDepthDense().
|
protected |
Plane equation described in the camera frame and updated with the current pose
Definition at line 214 of file vpMbtFaceDepthDense.h.
Referenced by computeInteractionMatrixAndResidu().
| vpPlane vpMbtFaceDepthDense::m_planeObject |
Plane equation described in the object frame.
Definition at line 78 of file vpMbtFaceDepthDense.h.
Referenced by vpMbDepthDenseTracker::addFace(), and computeInteractionMatrixAndResidu().
|
protected |
List of depth points inside the face.
Definition at line 216 of file vpMbtFaceDepthDense.h.
Referenced by computeDesiredFeatures(), computeDesiredFeatures(), and computeInteractionMatrixAndResidu().
| vpMbtPolygon* vpMbtFaceDepthDense::m_polygon |
Polygon defining the face.
Definition at line 80 of file vpMbtFaceDepthDense.h.
Referenced by vpMbDepthDenseTracker::addFace(), computeDesiredFeatures(), computeDesiredFeatures(), computeROI(), computeVisibility(), getModelForDisplay(), and vpMbDepthDenseTracker::setUseDepthDenseTracking().
|
protected |
Polygon lines used for scan-line visibility.
Definition at line 218 of file vpMbtFaceDepthDense.h.
Referenced by addLine(), and computeROI().
| bool vpMbtFaceDepthDense::m_useScanLine |
Scan line visibility.
Definition at line 82 of file vpMbtFaceDepthDense.h.
Referenced by vpMbDepthDenseTracker::addFace(), addLine(), computeDesiredFeatures(), computeDesiredFeatures(), computeROI(), and setScanLineVisibilityTest().