StripeScanParams3D

Description

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

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

  • ProfileInterpolationMethod ProfileInterpolation = Quadratic4 - Selects the method of sub-pixel precise edge detection
  • float SmoothingStdDev = 0.6f - Parameter for gaussian smoothing of the height profile
  • float MinMagnitude = 5.0f - Minimum acceptable surface edge strength
  • float MaxInnerEdgeMagnitude - Maximum strength of surface edges appearing between the two ends of a surface stripe
  • SurfaceStripePolarity StripePolarity - Specifies the type of surface stripes to be detected
  • float MinStripeWidth - Minimum acceptable stripe width
  • float MaxStripeWidth - Maximum acceptable stripe width
struct StripeScanParams3D
{
	ProfileInterpolationMethod	ProfileInterpolation;
	float						SmoothingStdDev;
	float						MinMagnitude;
	float						MaxInnerEdgeMagnitude;
	SurfaceStripePolarity		StripePolarity;
	float						MinStripeWidth;
	float						MaxStripeWidth;

	explicit StripeScanParams3D
	(
		ProfileInterpolationMethod ProfileInterpolation_ = Quadratic4,
		float SmoothingStdDev_ = 0.6f,
		float MinMagnitude_ = 5.0f 
	) :
		 ProfileInterpolation(ProfileInterpolation_),
		 SmoothingStdDev(SmoothingStdDev_),
		 MinMagnitude(MinMagnitude_) 
	{}

	ProfileInterpolationMethod ProfileInterpolation() const	{ return ProfileInterpolation;	};
	float SmoothingStdDev() const							{ return SmoothingStdDev;		};
	float MinMagnitude() const								{ return MinMagnitude;			};
	float MaxInnerEdgeMagnitude() const						{ return MaxInnerEdgeMagnitude;	};
	SurfaceStripePolarity StripePolarity() const			{ return StripePolarity;		};
	float MinStripeWidth() const							{ return MinStripeWidth;		};
	float MaxStripeWidth() const							{ return MaxStripeWidth;		};

	bool operator == ( const avl::StripeScanParams3D& rhs ) const
	{
		return ProfileInterpolation == rhs.ProfileInterpolation && 
			SmoothingStdDev == rhs.SmoothingStdDev && 
			MinMagnitude == rhs.MinMagnitude && 
			MaxInnerEdgeMagnitude == rhs.MaxInnerEdgeMagnitude && 
			StripePolarity == rhs.StripePolarity && 
			MinStripeWidth == rhs.MinStripeWidth && 
			MaxStripeWidth == rhs.MaxStripeWidth;
	}

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

};