RidgeScanParams3D

Description

This structure contains parameters of surface ridge scanning process. Instance of this structure should be customized and passed as a parameter to surface ridge scanning related functions.

Structure fields and default values (if defined) are described below:

  • ProfileInterpolationMethod ProfileInterpolation = Quadratic4 - Selects the method of sub-pixel precise surface ridge detection
  • float SmoothingStdDev = 0.6f - Parameter for gaussian smoothing of the height profile
  • float RidgeWidth = 5.0f - Expected thickness of the ridge
  • float RidgeMargin = 2.0f - Thickness of a sampling area outside of the ridge, on both of its sides
  • RidgeOperator RidgeOperator - Selects the function used to combine the height on the left and on the right side of the ridge
  • float MinMagnitude = 5.0f - Minimum acceptable surface ridge strength
  • SurfaceRidgePolarity RidgePolarity - Specifies the type of surface ridges to be detected
struct RidgeScanParams3D
{
	ProfileInterpolationMethod	ProfileInterpolation;
	float						SmoothingStdDev;
	float						RidgeWidth;
	float						RidgeMargin;
	RidgeOperator				RidgeOperator;
	float						MinMagnitude;
	SurfaceRidgePolarity		RidgePolarity;

	explicit RidgeScanParams3D
	(
		ProfileInterpolationMethod ProfileInterpolation_ = Quadratic4,
		float SmoothingStdDev_ = 0.6f,
		float RidgeWidth_ = 5.0f,
		float RidgeMargin_ = 2.0f,
		float MinMagnitude_ = 5.0f 
	) :
		 ProfileInterpolation(ProfileInterpolation_),
		 SmoothingStdDev(SmoothingStdDev_),
		 RidgeWidth(RidgeWidth_),
		 RidgeMargin(RidgeMargin_),
		 MinMagnitude(MinMagnitude_) 
	{}

	ProfileInterpolationMethod ProfileInterpolation() const	{ return ProfileInterpolation;	};
	float SmoothingStdDev() const							{ return SmoothingStdDev;		};
	float RidgeWidth() const								{ return RidgeWidth;			};
	float RidgeMargin() const								{ return RidgeMargin;			};
	RidgeOperator RidgeOperator() const						{ return RidgeOperator;			};
	float MinMagnitude() const								{ return MinMagnitude;			};
	SurfaceRidgePolarity RidgePolarity() const				{ return RidgePolarity;			};

	bool operator == ( const avl::RidgeScanParams3D& rhs ) const
	{
		return ProfileInterpolation == rhs.ProfileInterpolation && 
			SmoothingStdDev == rhs.SmoothingStdDev && 
			RidgeWidth == rhs.RidgeWidth && 
			RidgeMargin == rhs.RidgeMargin && 
			RidgeOperator == rhs.RidgeOperator && 
			MinMagnitude == rhs.MinMagnitude && 
			RidgePolarity == rhs.RidgePolarity;
	}

	bool operator != ( const avl::RidgeScanParams3D& rhs ) const
	{
		return !(operator==(rhs));
	}

};