A EPlaneFinder object is used to search an E3DPlane in an EPointCloud. More...


Public Member Functions | |
| EPlaneFinder (float maxDeviation, float pcExpectedInCloud) | |
| Creates an EPlaneFinder object. | |
| EPlaneFinder (float maxDeviation) | |
| Creates an EPlaneFinder object. | |
| EPlaneFinder (float maxDeviation, eVision.EFloatRange pcExpectedInCloudRange) | |
| Creates an EPlaneFinder object. | |
| EPlaneFinder (eVision.Easy3D.EPlaneFinder other) | |
| Creates an EPlaneFinder object. | |
| void | EnableDecimator () |
| Enables the default decimation which reduces the input point cloud by drawing points randomly. | |
| void | DisableDecimator () |
| Disables the default decimation. | |
| bool | IsDecimatorEnabled () |
| Returns true if the default decimator is enabled (enabled by default). | |
| void | UnsetNormal () |
| Unsets the normal vector definition. | |
| void | SetNormal (eVision.Easy3D.E3DPoint normal) |
| Sets the expected normal direction and the tolerance around it. These values are used to limit the scope of the plane search. | |
| void | SetNormal (eVision.Easy3D.E3DPoint normal, float angleTolerance) |
| Sets the expected normal direction and the tolerance around it. These values are used to limit the scope of the plane search. | |
| void | SetNormal (float nx, float ny, float nz) |
| Sets the expected normal direction and the tolerance around it. These values are used to limit the scope of the plane search. | |
| void | SetNormal (float nx, float ny, float nz, float angleTolerance) |
| Sets the expected normal direction and the tolerance around it. These values are used to limit the scope of the plane search. | |
| void | SetNormal (eVision.Easy3D.E3DPlane referencePlane) |
| Sets the expected normal direction and the tolerance around it. These values are used to limit the scope of the plane search. | |
| void | SetNormal (eVision.Easy3D.E3DPlane referencePlane, float angleTolerance) |
| Sets the expected normal direction and the tolerance around it. These values are used to limit the scope of the plane search. | |
| eVision.Easy3D.E3DPoint | GetNormal () |
| Returns the expected normal direction (that has been set by EPlaneFinder.SetNormal). | |
| bool | IsNormalSet () |
| Returns true if the expected normal direction has been set (not set by default). | |
| void | UnsetPoints () |
| Unsets the 1 or 2 points that the plane is constrained to contain. | |
| void | SetTwoPoints (eVision.Easy3D.E3DPoint point1, eVision.Easy3D.E3DPoint point2) |
| Sets two points that the plane will be constrained to contain. | |
| eVision.Easy3D.E3DPoint | GetPoint (bool first) |
| Returns an E3DPoint the plane is constrained to contain (that has been set by EPlaneFinder.OnePoint or EPlaneFinder.SetTwoPoints). | |
| float | Find (eVision.Easy3D.EPointCloud pointCloud, eVision.Easy3D.E3DPlane foundPlane) |
| Searches the biggest plane in the supplied EPointCloud. If a sufficiently good plane is not found, an exception is thrown. | |
| float | Find (eVision.Easy3D.EPointCloud pointCloud, eVision.Easy3D.E3DPlane foundPlane, eVision.Easy3D.EPointCloud inliers) |
| Searches the biggest plane in the supplied EPointCloud. If a sufficiently good plane is not found, an exception is thrown. | |
| float | Find (eVision.Easy3D.EPointCloud pointCloud, eVision.Easy3D.E3DPlane foundPlane, eVision.Easy3D.EPointCloud inliers, eVision.Easy3D.EPointCloud outliers) |
| Searches the biggest plane in the supplied EPointCloud. If a sufficiently good plane is not found, an exception is thrown. | |
| eVision.Easy3D.E3DPlane | Find (eVision.Easy3D.EPointCloud pointCloud) |
| Searches the biggest plane in the supplied EPointCloud. If a sufficiently good plane is not found, an exception is thrown. | |
| eVision.Easy3D.E3DPlane | Find (eVision.Easy3D.EPointCloud pointCloud, out float effectiveInliersRatio) |
| Searches the biggest plane in the supplied EPointCloud. If a sufficiently good plane is not found, an exception is thrown. | |
| eVision.Easy3D.E3DPlane | Find (eVision.Easy3D.EPointCloud pointCloud, out float effectiveInliersRatio, eVision.Easy3D.EPointCloud inliers) |
| Searches the biggest plane in the supplied EPointCloud. If a sufficiently good plane is not found, an exception is thrown. | |
| eVision.Easy3D.E3DPlane | Find (eVision.Easy3D.EPointCloud pointCloud, out float effectiveInliersRatio, eVision.Easy3D.EPointCloud inliers, eVision.Easy3D.EPointCloud outliers) |
| Searches the biggest plane in the supplied EPointCloud. If a sufficiently good plane is not found, an exception is thrown. | |
| void | Load (string path) |
| Loads the plane finder configuration. The given ESerializer must have been created for reading. | |
| void | Load (eVision.ESerializer serializer) |
| Loads the plane finder configuration. The given ESerializer must have been created for reading. | |
| void | Save (string path) |
| Saves the plane finder configuration. The given ESerializer must have been created for writing. | |
| void | Save (eVision.ESerializer serializer) |
| Saves the plane finder configuration. The given ESerializer must have been created for writing. | |
| bool | IsSeedSet () |
| Returns true if the seed was set to a custom value. | |
| void | UnsetSeed () |
| Reset seed to its default state of being randomly initialized. | |
Properties | |
| float | MaxDeviation [get, set] |
| Sets/gets the maximum distance of an inlier to the plane. | |
| int | NumberOfPointsAfterDecimation [get, set] |
| Sets/gets the number of points surviving the decimation. Using the setter enables the decimation if it wasn't already. if numberOfPointsAfterDecimation is bigger than the point cloud size, no decimation occurs. | |
| float | ExpectedCloudInliersRatio [get, set] |
| Sets/gets the expected ratio of inliers in the EPointCloud. | |
| eVision.EFloatRange | ExpectedCloudInliersRatioRange [get, set] |
| Sets/gets the expected ratio of inliers in the EPointCloud. | |
| float | NormalTolerance [get] |
| Returns the angle tolerance around the expected normal (that has been set by EPlaneFinder.SetNormal). | |
| eVision.Easy3D.E3DPoint | OnePoint [set] |
| Sets one point that the plane will be constrained to contain. | |
| int | NumberOfPointsSet [get] |
| Returns the number of points set (this will be either 0, 1 or 2). | |
| uint | Seed [get, set] |
| Returns the seed (that has been set by EPlaneFinder.Seed). | |
A EPlaneFinder object is used to search an E3DPlane in an EPointCloud.
The algorithm searches the largest plane in terms of number of "inliers". A point is an "inlier" when its distance to the plane is smaller than a specified threshold (parameter "maximum distance"). Another parameter specifies the expected ratio of inliers over the total number of points in the point cloud (by default, this is set to 0.3).
For more control, you can also set the expected ratio of inliers as a range, when a single number is given the behavior is equivalent to a range (number/2, number). The method Find throws an error if it cannot achieve a proportion of inliers better than the min of the range. It stops as soon as the max of the range is achieved.
Reducing the size of the range increases speed. A decimation is applied by default to accelerate the search. Furthermore, the expected normal to the plane and/or up to two points contained in the plane may be specified.
The method EPlaneFinder.Find processes an EPointCloud object and returns an E3DPlane object when a sufficiently good plane is found in the input point cloud. The returned plane is the result of fitting an EPlaneFitter on the inliers.
License(s): Easy3D
| eVision.Easy3D.EPlaneFinder.EPlaneFinder | ( | float | maxDeviation, |
| float | pcExpectedInCloud ) |
Creates an EPlaneFinder object.
| maxDeviation | Maximum distance of an inlier to the plane. This value has to be strictly positive. |
| pcExpectedInCloud | This is an estimation of the ratio of inliers in the point cloud. The algorithm stops as soon as a pointCloud with at least pcExpectedInCloud inliers is found. It throws an error if the best plane has less than pcExpectedInCloud/2 inliers. |
This optional parameter has a default value of 0.3.
| eVision.Easy3D.EPlaneFinder.EPlaneFinder | ( | float | maxDeviation | ) |
Creates an EPlaneFinder object.
| maxDeviation | Maximum distance of an inlier to the plane. This value has to be strictly positive. |
| eVision.Easy3D.EPlaneFinder.EPlaneFinder | ( | float | maxDeviation, |
| eVision.EFloatRange | pcExpectedInCloudRange ) |
Creates an EPlaneFinder object.
| maxDeviation | Maximum distance of an inlier to the plane. This value has to be strictly positive. |
| pcExpectedInCloudRange | This is an estimation of the ratio of inliers in the point cloud as a range within ]0, 1[. The algorithm throws an error if the best plane has less than inliersProportion.min inliers. The algorithm stops as soon as a model with inliersProportion.max is found. |
Increasing inliersProportion.min can increase speed but at the risk of missing the plane. Decreasing the max of the range can increase speed but at the risk of finding a bad plane.
| eVision.Easy3D.EPlaneFinder.EPlaneFinder | ( | eVision.Easy3D.EPlaneFinder | other | ) |
Creates an EPlaneFinder object.
| other | The EPlaneFinder object that should be copied. |
| void eVision.Easy3D.EPlaneFinder.DisableDecimator | ( | ) |
Disables the default decimation.
The decimation should be disabled when the input point cloud is already decimated.
| void eVision.Easy3D.EPlaneFinder.EnableDecimator | ( | ) |
Enables the default decimation which reduces the input point cloud by drawing points randomly.
This decimation is enabled by default. The decimation accelerates the search.
| eVision.Easy3D.E3DPlane eVision.Easy3D.EPlaneFinder.Find | ( | eVision.Easy3D.EPointCloud | pointCloud | ) |
Searches the biggest plane in the supplied EPointCloud. If a sufficiently good plane is not found, an exception is thrown.
| pointCloud | The input point cloud in which the plane should be searched (need at least 3 points) |
The normal vector of the fitted plane is always oriented towards the positive Z axis, see E3DPlaneNormalOrientation.E3DPlaneNormalOrientation_PosZ.
| float eVision.Easy3D.EPlaneFinder.Find | ( | eVision.Easy3D.EPointCloud | pointCloud, |
| eVision.Easy3D.E3DPlane | foundPlane ) |
Searches the biggest plane in the supplied EPointCloud. If a sufficiently good plane is not found, an exception is thrown.
| pointCloud | The input point cloud in which the plane should be searched (need at least 3 points) |
| foundPlane | An E3DPlane that will contain the plane found |
The normal vector of the fitted plane is always oriented towards the positive Z axis, see E3DPlaneNormalOrientation.E3DPlaneNormalOrientation_PosZ.
| float eVision.Easy3D.EPlaneFinder.Find | ( | eVision.Easy3D.EPointCloud | pointCloud, |
| eVision.Easy3D.E3DPlane | foundPlane, | ||
| eVision.Easy3D.EPointCloud | inliers ) |
Searches the biggest plane in the supplied EPointCloud. If a sufficiently good plane is not found, an exception is thrown.
| pointCloud | The input point cloud in which the plane should be searched (need at least 3 points) |
| foundPlane | An E3DPlane that will contain the plane found |
| inliers | A pointcloud that will contain the inliers of the plane |
The normal vector of the fitted plane is always oriented towards the positive Z axis, see E3DPlaneNormalOrientation.E3DPlaneNormalOrientation_PosZ.
| float eVision.Easy3D.EPlaneFinder.Find | ( | eVision.Easy3D.EPointCloud | pointCloud, |
| eVision.Easy3D.E3DPlane | foundPlane, | ||
| eVision.Easy3D.EPointCloud | inliers, | ||
| eVision.Easy3D.EPointCloud | outliers ) |
Searches the biggest plane in the supplied EPointCloud. If a sufficiently good plane is not found, an exception is thrown.
| pointCloud | The input point cloud in which the plane should be searched (need at least 3 points) |
| foundPlane | An E3DPlane that will contain the plane found |
| inliers | A pointcloud that will contain the inliers of the plane |
| outliers | A pointcloud that will contain the outliers of the plane |
The normal vector of the fitted plane is always oriented towards the positive Z axis, see E3DPlaneNormalOrientation.E3DPlaneNormalOrientation_PosZ.
| eVision.Easy3D.E3DPlane eVision.Easy3D.EPlaneFinder.Find | ( | eVision.Easy3D.EPointCloud | pointCloud, |
| out float | effectiveInliersRatio ) |
Searches the biggest plane in the supplied EPointCloud. If a sufficiently good plane is not found, an exception is thrown.
| pointCloud | The input point cloud in which the plane should be searched (need at least 3 points) |
| effectiveInliersRatio | This passed by reference float will contain the effective ratio of inliers |
The normal vector of the fitted plane is always oriented towards the positive Z axis, see E3DPlaneNormalOrientation.E3DPlaneNormalOrientation_PosZ.
| eVision.Easy3D.E3DPlane eVision.Easy3D.EPlaneFinder.Find | ( | eVision.Easy3D.EPointCloud | pointCloud, |
| out float | effectiveInliersRatio, | ||
| eVision.Easy3D.EPointCloud | inliers ) |
Searches the biggest plane in the supplied EPointCloud. If a sufficiently good plane is not found, an exception is thrown.
| pointCloud | The input point cloud in which the plane should be searched (need at least 3 points) |
| effectiveInliersRatio | This passed by reference float will contain the effective ratio of inliers |
| inliers | A pointcloud that will contain the inliers of the plane |
The normal vector of the fitted plane is always oriented towards the positive Z axis, see E3DPlaneNormalOrientation.E3DPlaneNormalOrientation_PosZ.
| eVision.Easy3D.E3DPlane eVision.Easy3D.EPlaneFinder.Find | ( | eVision.Easy3D.EPointCloud | pointCloud, |
| out float | effectiveInliersRatio, | ||
| eVision.Easy3D.EPointCloud | inliers, | ||
| eVision.Easy3D.EPointCloud | outliers ) |
Searches the biggest plane in the supplied EPointCloud. If a sufficiently good plane is not found, an exception is thrown.
| pointCloud | The input point cloud in which the plane should be searched (need at least 3 points) |
| effectiveInliersRatio | This passed by reference float will contain the effective ratio of inliers |
| inliers | A pointcloud that will contain the inliers of the plane |
| outliers | A pointcloud that will contain the outliers of the plane |
The normal vector of the fitted plane is always oriented towards the positive Z axis, see E3DPlaneNormalOrientation.E3DPlaneNormalOrientation_PosZ.
| eVision.Easy3D.E3DPoint eVision.Easy3D.EPlaneFinder.GetNormal | ( | ) |
Returns the expected normal direction (that has been set by EPlaneFinder.SetNormal).
| eVision.Easy3D.E3DPoint eVision.Easy3D.EPlaneFinder.GetPoint | ( | bool | first | ) |
Returns an E3DPoint the plane is constrained to contain (that has been set by EPlaneFinder.OnePoint or EPlaneFinder.SetTwoPoints).
| first | True if you want to get the first point and false if you want the second instead. |
| bool eVision.Easy3D.EPlaneFinder.IsDecimatorEnabled | ( | ) |
Returns true if the default decimator is enabled (enabled by default).
| bool eVision.Easy3D.EPlaneFinder.IsNormalSet | ( | ) |
Returns true if the expected normal direction has been set (not set by default).
| bool eVision.Easy3D.EPlaneFinder.IsSeedSet | ( | ) |
Returns true if the seed was set to a custom value.
Always returns true.
Deprecated in version 24.6. Scheduled to be removed in version 27.6.
| void eVision.Easy3D.EPlaneFinder.Load | ( | eVision.ESerializer | serializer | ) |
Loads the plane finder configuration. The given ESerializer must have been created for reading.
| serializer | The serializer. |
| void eVision.Easy3D.EPlaneFinder.Load | ( | string | path | ) |
Loads the plane finder configuration. The given ESerializer must have been created for reading.
| path | The file path. |
| void eVision.Easy3D.EPlaneFinder.Save | ( | eVision.ESerializer | serializer | ) |
Saves the plane finder configuration. The given ESerializer must have been created for writing.
| serializer | The ESerializer object that is written to. |
| void eVision.Easy3D.EPlaneFinder.Save | ( | string | path | ) |
Saves the plane finder configuration. The given ESerializer must have been created for writing.
| path | The file path. |
| void eVision.Easy3D.EPlaneFinder.SetNormal | ( | eVision.Easy3D.E3DPlane | referencePlane | ) |
Sets the expected normal direction and the tolerance around it. These values are used to limit the scope of the plane search.
If the angular tolerance is not specified, a default value of 5 degrees is assumed. If the tolerance is specified, the value should be strictly positive and correspond to less than 90 degrees.
| referencePlane | The reference plane specifies the expected perpendicular direction. |
| void eVision.Easy3D.EPlaneFinder.SetNormal | ( | eVision.Easy3D.E3DPlane | referencePlane, |
| float | angleTolerance ) |
Sets the expected normal direction and the tolerance around it. These values are used to limit the scope of the plane search.
If the angular tolerance is not specified, a default value of 5 degrees is assumed. If the tolerance is specified, the value should be strictly positive and correspond to less than 90 degrees.
| referencePlane | The reference plane specifies the expected perpendicular direction. |
| angleTolerance | The angle tolerance is the maximum angular deviation around the expected normal (strictly positive and smaller than 90 degrees). It's set to 5 degrees by default. |
| void eVision.Easy3D.EPlaneFinder.SetNormal | ( | eVision.Easy3D.E3DPoint | normal | ) |
Sets the expected normal direction and the tolerance around it. These values are used to limit the scope of the plane search.
If the angular tolerance is not specified, a default value of 5 degrees is assumed. If the tolerance is specified, the value should be strictly positive and correspond to less than 90 degrees.
| normal | The normal vector specifies the expected perpendicular direction of the plane. |
| void eVision.Easy3D.EPlaneFinder.SetNormal | ( | eVision.Easy3D.E3DPoint | normal, |
| float | angleTolerance ) |
Sets the expected normal direction and the tolerance around it. These values are used to limit the scope of the plane search.
If the angular tolerance is not specified, a default value of 5 degrees is assumed. If the tolerance is specified, the value should be strictly positive and correspond to less than 90 degrees.
| normal | The normal vector specifies the expected perpendicular direction of the plane. |
| angleTolerance | The angle tolerance is the maximum angular deviation around the expected normal (strictly positive and smaller than 90 degrees). It's set to 5 degrees by default. |
| void eVision.Easy3D.EPlaneFinder.SetNormal | ( | float | nx, |
| float | ny, | ||
| float | nz ) |
Sets the expected normal direction and the tolerance around it. These values are used to limit the scope of the plane search.
If the angular tolerance is not specified, a default value of 5 degrees is assumed. If the tolerance is specified, the value should be strictly positive and correspond to less than 90 degrees.
| nx | The x component of the normal vector. |
| ny | The y component of the normal vector. |
| nz | The z component of the normal vector. |
| void eVision.Easy3D.EPlaneFinder.SetNormal | ( | float | nx, |
| float | ny, | ||
| float | nz, | ||
| float | angleTolerance ) |
Sets the expected normal direction and the tolerance around it. These values are used to limit the scope of the plane search.
If the angular tolerance is not specified, a default value of 5 degrees is assumed. If the tolerance is specified, the value should be strictly positive and correspond to less than 90 degrees.
| nx | The x component of the normal vector. |
| ny | The y component of the normal vector. |
| nz | The z component of the normal vector. |
| angleTolerance | The angle tolerance is the maximum angular deviation around the expected normal (strictly positive and smaller than 90 degrees). It's set to 5 degrees by default. |
| void eVision.Easy3D.EPlaneFinder.SetTwoPoints | ( | eVision.Easy3D.E3DPoint | point1, |
| eVision.Easy3D.E3DPoint | point2 ) |
Sets two points that the plane will be constrained to contain.
| point1 | The first point. |
| point2 | The second point. |
To set 1 point, use the function SetOnePoint
| void eVision.Easy3D.EPlaneFinder.UnsetNormal | ( | ) |
Unsets the normal vector definition.
| void eVision.Easy3D.EPlaneFinder.UnsetPoints | ( | ) |
Unsets the 1 or 2 points that the plane is constrained to contain.
| void eVision.Easy3D.EPlaneFinder.UnsetSeed | ( | ) |
Reset seed to its default state of being randomly initialized.
This function doesn't have any effect.
Deprecated in version 24.6. Scheduled to be removed in version 27.6.
|
getset |
Sets/gets the expected ratio of inliers in the EPointCloud.
This setter/getter is used to access the max of the range, its behavior is the same as SetExpectedCloudInliersRatioRange(EFloatRange(pcExpectedInCloud/2, pcExpectedInCloud)) and GetExpectedCloudInliersRatioRange().GetUpperBound()
|
getset |
Sets/gets the expected ratio of inliers in the EPointCloud.
This is an estimation of the ratio of inliers in the point cloud as a range within ]0, 1[.
If pcExpectedInCloudRange.min is too small, we risk missing the plane. The algorithm throws an error if the best plane has less than pcExpectedInCloudRange.min inliers. The algorithm stops as soon as a model with pcExpectedInCloudRange.max is found.
Increasing pcExpectedInCloudRange.min can increase speed. Decreasing pcExpectedInCloudRange.max can increase speed.
|
getset |
Sets/gets the maximum distance of an inlier to the plane.
|
get |
Returns the angle tolerance around the expected normal (that has been set by EPlaneFinder.SetNormal).
|
getset |
Sets/gets the number of points surviving the decimation. Using the setter enables the decimation if it wasn't already. if numberOfPointsAfterDecimation is bigger than the point cloud size, no decimation occurs.
|
get |
Returns the number of points set (this will be either 0, 1 or 2).
|
set |
Sets one point that the plane will be constrained to contain.
To set 2 points, use the function SetTwoPoints. If two points were previously set, the second one will be removed by this function.
|
getset |
Returns the seed (that has been set by EPlaneFinder.Seed).
Users shouldn't have to get the seed.
Deprecated in version 24.6. Scheduled to be removed in version 27.6.