ScanExactlyNEdges3D_Direct
Locates a specified number of the strongest changes of surface height along a given path.
Syntax
C++
C#
Python
def ScanExactlyNEdges3D_Direct( inSurface: Surface, inScanPath: Path, /, *, inScanPathAlignment: CoordinateSystem2D | None = None, inSamplingStep: float | None = None, inScanWidth: int = 5, inSurfaceInterpolation: InterpolationMethod = InterpolationMethod.Bilinear, inEdgeScanParams: EdgeScanParams3D = EdgeScanParams3D(ProfileInterpolationMethod.Quadratic4, 0.6, 5.0, SurfaceEdgeTransition.LowToHigh), inEdgeCount: int = 1, inEdgeSelection: Selection = Selection.Best, inMinDistance: float = 0.0, inMaxDistance: float | None = None, inLocalBlindness: LocalBlindness | None = None, inMaxProfileGapWidth: int | None = 1, outAlignedScanPath: Path | None = None, outHeightProfile: Profile | None = None, outResponseProfile: Profile | None = None ) -> ( outEdges: list[SurfaceEdge1D] | None, diagSamplingPoints: list[Path], diagSamplingStep: float )
Parameters
| Name | Type | Range | Default | Description | |
|---|---|---|---|---|---|
![]() |
inSurface | Surface | Input surface | ||
![]() |
inScanPath | Path | Path along which the scan is performed | ||
![]() |
inScanPathAlignment | CoordinateSystem2D | None | None | Adjusts the scan path to the position of the inspected object | |
![]() |
inSamplingStep | float | None | 0.0 - ![]() |
None | Distance between consecutive sampling points on the scan path; if Nil, the bigger of surface X and Y scales is chosen |
![]() |
inScanWidth | int | 1 - ![]() |
5 | Width of the scan field in pixels |
![]() |
inSurfaceInterpolation | InterpolationMethod | InterpolationMethod.Bilinear | Interpolation method used for extraction of surface points | |
![]() |
inEdgeScanParams | EdgeScanParams3D | EdgeScanParams3D(ProfileInterpolationMethod.Quadratic4, 0.6, 5.0, SurfaceEdgeTransition.LowToHigh) | Parameters controlling the surface edge extraction process | |
![]() |
inEdgeCount | int | 0 - ![]() |
1 | Number of surface edges to be found |
![]() |
inEdgeSelection | Selection | Selection.Best | Selection mode of the resulting edges | |
![]() |
inMinDistance | float | 0.0 - ![]() |
0.0 | Minimal distance between consecutive edges |
![]() |
inMaxDistance | float | None | 0.0 - ![]() |
None | Maximal distance between consecutive edges |
![]() |
inLocalBlindness | LocalBlindness | None | None | Defines conditions in which weaker edges can be detected in the vicinity of stronger edges | |
![]() |
inMaxProfileGapWidth | int | None | 0 - ![]() |
1 | Maximal number of consecutive not existing profile points |
![]() |
outEdges | list[SurfaceEdge1D] | None | Found surface edges | ||
![]() |
outAlignedScanPath | Path | None | None | Path along which the scan is performed; in the image coordinate system | |
![]() |
outHeightProfile | Profile | None | None | Extracted surface height profile | |
![]() |
outResponseProfile | Profile | None | None | Profile of the edge (derivative) operator response | |
![]() |
diagSamplingPoints | list[Path] | Array of paths each one containing the sampling points that contributed to a single value of the extracted profile; in the image coordinate system | ||
![]() |
diagSamplingStep | float | Used distance between consecutive sampling points on the scan path |




