![]() |
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.
|
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 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 261 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 352 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 472 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 700 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 437 of file vpMbtFaceDepthDense.cpp.
References vpMbtPolygon::isVisible(), 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(), 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 821 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 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.
<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 858 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 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.
|
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 912 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().