StripeScanParams

Description

This structure contains parameters of stripe scanning process. Instance of this structure should be customized and passed as a parameter to 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
  • real SmoothingStdDev = 0.6f - Parameter for gaussian smoothing of the brightness profile
  • real MinMagnitude = 5.0f - Minimum acceptable edge strength
  • real MaxInnerEdgeMagnitude - Maximum strength of edges appearing between the two ends of a stripe
  • Polarity StripePolarity - Specifies the type of stripes to be detected (Bright, Dark or Any)
  • real MinStripeWidth - Minimum acceptable stripe width in pixels
  • real MaxStripeWidth - Maximum acceptable stripe width in pixels
struct StripeScanParams
{
	ProfileInterpolationMethod	ProfileInterpolation;
	real						SmoothingStdDev;
	real						MinMagnitude;
	real						MaxInnerEdgeMagnitude;
	Polarity					StripePolarity;
	real						MinStripeWidth;
	real						MaxStripeWidth;

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

	ProfileInterpolationMethod ProfileInterpolation( void ) const	{ return ProfileInterpolation;	};
	real SmoothingStdDev( void ) const								{ return SmoothingStdDev;		};
	real MinMagnitude( void ) const									{ return MinMagnitude;			};
	real MaxInnerEdgeMagnitude( void ) const						{ return MaxInnerEdgeMagnitude;	};
	Polarity StripePolarity( void ) const							{ return StripePolarity;		};
	real MinStripeWidth( void ) const								{ return MinStripeWidth;		};
	real MaxStripeWidth( void ) const								{ return MaxStripeWidth;		};

	bool operator == ( const avl::StripeScanParams& 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::StripeScanParams& rhs ) const
	{
		return !(operator==(rhs));
	}

};