![]() |
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 170 of file vpMbtFaceDepthDense.cpp.
References DEPTH_OCCUPANCY_RATIO_FILTERING, m_cam, m_clippingFlag, m_depthDenseFilteringMaxDist, m_depthDenseFilteringMethod, m_depthDenseFilteringMinDist, m_depthDenseFilteringOccupancyRatio, m_distFarClip, m_distNearClip, m_hiddenFace, m_isTrackedDepthDenseFace, m_isVisible, m_listOfFaceLines, m_planeCamera, m_planeObject, m_pointCloudFace, m_polygon, m_polygonLines, and m_useScanLine.
|
virtual |
Definition at line 179 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 200 of file vpMbtFaceDepthDense.cpp.
References vpPolygon3D::addPoint(), 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, vpPolygon3D::p, vpMbtDistanceLine::p1, vpMbtDistanceLine::p2, samePoint(), vpMbtDistanceLine::setCameraParameters(), vpPolygon3D::setClipping(), vpPolygon3D::setFarClippingDistance(), vpMbtDistanceLine::setIndex(), vpMbtDistanceLine::setName(), vpPolygon3D::setNbPoint(), 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 261 of file vpMbtFaceDepthDense.cpp.
References computeROI(), DEPTH_OCCUPANCY_RATIO_FILTERING, vpRect::getBottom(), vpPolygon::getBoundingBox(), vpRect::getHeight(), vpRect::getLeft(), 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 352 of file vpMbtFaceDepthDense.cpp.
References computeROI(), DEPTH_OCCUPANCY_RATIO_FILTERING, vpRect::getBottom(), vpPolygon::getBoundingBox(), vpRect::getHeight(), vpRect::getLeft(), 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 472 of file vpMbtFaceDepthDense.cpp.
References vpCPUFeatures::checkNeon(), vpCPUFeatures::checkSSE2(), vpArray2D< Type >::data, getNbFeatures(), m_planeCamera, m_planeObject, m_pointCloudFace, vpColVector::resize(), and vpColVector::t().
Referenced by vpMbDepthDenseTracker::computeVVSInteractionMatrixAndResidu().
|
protected |
Definition at line 700 of file vpMbtFaceDepthDense.cpp.
References vpMeterPixelConversion::convertPoint(), vpPolygon3D::DOWN_CLIPPING, vpPolygon3D::FAR_CLIPPING, vpPoint::get_X(), vpPoint::get_Y(), vpPoint::get_Z(), vpPolygon3D::LEFT_CLIPPING, m_cam, m_clippingFlag, m_hiddenFace, m_polygon, m_polygonLines, m_useScanLine, vpPolygon3D::NEAR_CLIPPING, 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 437 of file vpMbtFaceDepthDense.cpp.
References m_isVisible, and m_polygon.
Referenced by vpMbDepthDenseTracker::computeVisibility().
| void vpMbtFaceDepthDense::computeVisibilityDisplay | ( | ) |
Definition at line 439 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 807 of file vpMbtFaceDepthDense.cpp.
References vpDisplay::displayLine(), and getModelForDisplay().
| 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 821 of file vpMbtFaceDepthDense.cpp.
References vpDisplay::displayLine(), and getModelForDisplay().
| 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 835 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 841 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.
| 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 858 of file vpMbtFaceDepthDense.cpp.
References computeVisibilityDisplay(), vpMbtDistanceLine::getModelForDisplay(), m_isTrackedDepthDenseFace, m_listOfFaceLines, and m_polygon.
Referenced by display(), display(), and vpMbDepthDenseTracker::getModelForDisplay().
|
inline |
Definition at line 129 of file vpMbtFaceDepthDense.h.
References m_pointCloudFace.
Referenced by computeInteractionMatrixAndResidu(), and vpMbDepthDenseTracker::computeVVSInit().
|
inline |
Definition at line 131 of file vpMbtFaceDepthDense.h.
References m_isTrackedDepthDenseFace.
Referenced by vpMbDepthDenseTracker::segmentPointCloud(), and vpMbDepthDenseTracker::segmentPointCloud().
|
inline |
Definition at line 133 of file vpMbtFaceDepthDense.h.
References m_polygon.
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 889 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 902 of file vpMbtFaceDepthDense.cpp.
References m_cam, and m_listOfFaceLines.
|
inline |
Definition at line 139 of file vpMbtFaceDepthDense.h.
References m_depthDenseFilteringMaxDist.
|
inline |
Definition at line 141 of file vpMbtFaceDepthDense.h.
References m_depthDenseFilteringMethod.
|
inline |
Definition at line 143 of file vpMbtFaceDepthDense.h.
References m_depthDenseFilteringMinDist.
|
inline |
Definition at line 145 of file vpMbtFaceDepthDense.h.
References m_depthDenseFilteringOccupancyRatio.
| void vpMbtFaceDepthDense::setScanLineVisibilityTest | ( | bool | v | ) |
Definition at line 912 of file vpMbtFaceDepthDense.cpp.
References m_listOfFaceLines, and m_useScanLine.
|
inline |
Definition at line 154 of file vpMbtFaceDepthDense.h.
References m_isTrackedDepthDenseFace.
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(), setCameraParameters(), and vpMbtFaceDepthDense().
| unsigned int vpMbtFaceDepthDense::m_clippingFlag |
Flags specifying which clipping to used.
Definition at line 70 of file vpMbtFaceDepthDense.h.
Referenced by vpMbDepthDenseTracker::addFace(), addLine(), computeROI(), and vpMbtFaceDepthDense().
|
protected |
Maximum distance threshold.
Definition at line 202 of file vpMbtFaceDepthDense.h.
Referenced by computeDesiredFeatures(), computeDesiredFeatures(), setDepthDenseFilteringMaxDistance(), and vpMbtFaceDepthDense().
|
protected |
Method to use to consider or not the face.
Definition at line 200 of file vpMbtFaceDepthDense.h.
Referenced by computeDesiredFeatures(), computeDesiredFeatures(), setDepthDenseFilteringMethod(), and vpMbtFaceDepthDense().
|
protected |
Minimum distance threshold.
Definition at line 204 of file vpMbtFaceDepthDense.h.
Referenced by computeDesiredFeatures(), computeDesiredFeatures(), setDepthDenseFilteringMinDistance(), and vpMbtFaceDepthDense().
|
protected |
Ratio between available depth points and theoretical number of points.
Definition at line 206 of file vpMbtFaceDepthDense.h.
Referenced by computeDesiredFeatures(), computeDesiredFeatures(), setDepthDenseFilteringOccupancyRatio(), and vpMbtFaceDepthDense().
| double vpMbtFaceDepthDense::m_distFarClip |
Distance for near clipping.
Definition at line 72 of file vpMbtFaceDepthDense.h.
Referenced by vpMbDepthDenseTracker::addFace(), addLine(), and vpMbtFaceDepthDense().
| double vpMbtFaceDepthDense::m_distNearClip |
Distance for near clipping.
Definition at line 74 of file vpMbtFaceDepthDense.h.
Referenced by vpMbDepthDenseTracker::addFace(), addLine(), and vpMbtFaceDepthDense().
| 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(), computeROI(), and vpMbtFaceDepthDense().
|
protected |
Flag to define if the face should be tracked or not.
Definition at line 208 of file vpMbtFaceDepthDense.h.
Referenced by getModelForDisplay(), isTracked(), setTracked(), and vpMbtFaceDepthDense().
|
protected |
Visibility flag.
Definition at line 210 of file vpMbtFaceDepthDense.h.
Referenced by computeVisibility(), and vpMbtFaceDepthDense().
|
protected |
Definition at line 211 of file vpMbtFaceDepthDense.h.
Referenced by addLine(), computeVisibilityDisplay(), getModelForDisplay(), setCameraParameters(), setScanLineVisibilityTest(), vpMbtFaceDepthDense(), 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(), and vpMbtFaceDepthDense().
| vpPlane vpMbtFaceDepthDense::m_planeObject |
Plane equation described in the object frame.
Definition at line 78 of file vpMbtFaceDepthDense.h.
Referenced by vpMbDepthDenseTracker::addFace(), computeInteractionMatrixAndResidu(), and vpMbtFaceDepthDense().
|
protected |
List of depth points inside the face.
Definition at line 216 of file vpMbtFaceDepthDense.h.
Referenced by computeDesiredFeatures(), computeDesiredFeatures(), computeInteractionMatrixAndResidu(), getNbFeatures(), and vpMbtFaceDepthDense().
| 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(), isVisible(), vpMbDepthDenseTracker::setUseDepthDenseTracking(), and vpMbtFaceDepthDense().
|
protected |
Polygon lines used for scan-line visibility.
Definition at line 218 of file vpMbtFaceDepthDense.h.
Referenced by addLine(), computeROI(), and vpMbtFaceDepthDense().
| bool vpMbtFaceDepthDense::m_useScanLine |
Scan line visibility.
Definition at line 82 of file vpMbtFaceDepthDense.h.
Referenced by vpMbDepthDenseTracker::addFace(), addLine(), computeDesiredFeatures(), computeDesiredFeatures(), computeROI(), setScanLineVisibilityTest(), and vpMbtFaceDepthDense().