LocalBlindness

Description

This structure contains parameters of 1D scanning process that can prevent weaker edges in the vicinity of some strong edges from being detected.

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

  • float Radius - Defines how far the blindness works
  • float Threshold = 0.5f - Defines the fraction of a strong edge magnitude that a weaker edge has to have to be detected
  • float Fuzziness = 0.0f - Makes effective threshold decrease linearly from 'Threshold' at distance 'Radius - Radius * Fuzziness' to zero at distance 'Radius + Radius * Fuzziness'
struct LocalBlindness
{
	float	Radius;
	float	Threshold;
	float	Fuzziness;

	explicit LocalBlindness
	(
		 float Threshold_ = 0.5f,
		 float Fuzziness_ = 0.0f 
	) :
		 Threshold(Threshold_),
		 Fuzziness(Fuzziness_) 
	{}

	float Radius( void ) const		{ return Radius;	};
	float Threshold( void ) const	{ return Threshold;	};
	float Fuzziness( void ) const	{ return Fuzziness;	};

	bool operator == ( const avl::LocalBlindness& rhs ) const
	{
		return Radius == rhs.Radius && 
			Threshold == rhs.Threshold && 
			Fuzziness == rhs.Fuzziness;
	}

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

};