PDF417DetectionParams

Description

Specifies how PDF417 codes are being detected.

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

  • float ContrastThreshold = 5.0f - Guaranteed gray level difference between dark and bright modules
  • float ContrastHysteresis = 0.0f - A value dynamically subtracted from ContrastThreshold to improve local segmentation
  • int DetectionScanCount = 3 - Number of scan lines used for detecting the code
  • int ScanWidth = 1 - Width of the single scan
  • float SmoothingStdDev = 0.6f - Parameter for gaussian smoothing used during scanning
  • float MinEdgeMagnitude = 8.0f - Minimum acceptable edge strength
struct PDF417DetectionParams
{
	float	ContrastThreshold;
	float	ContrastHysteresis;
	int		DetectionScanCount;
	int		ScanWidth;
	float	SmoothingStdDev;
	float	MinEdgeMagnitude;

	explicit PDF417DetectionParams
	(
		float ContrastThreshold_ = 5.0f,
		float ContrastHysteresis_ = 0.0f,
		int DetectionScanCount_ = 3,
		int ScanWidth_ = 1,
		float SmoothingStdDev_ = 0.6f,
		float MinEdgeMagnitude_ = 8.0f 
	) :
		 ContrastThreshold(ContrastThreshold_),
		 ContrastHysteresis(ContrastHysteresis_),
		 DetectionScanCount(DetectionScanCount_),
		 ScanWidth(ScanWidth_),
		 SmoothingStdDev(SmoothingStdDev_),
		 MinEdgeMagnitude(MinEdgeMagnitude_) 
	{}

	float ContrastThreshold() const		{ return ContrastThreshold;		};
	float ContrastHysteresis() const	{ return ContrastHysteresis;	};
	int DetectionScanCount() const		{ return DetectionScanCount;	};
	int ScanWidth() const				{ return ScanWidth;				};
	float SmoothingStdDev() const		{ return SmoothingStdDev;		};
	float MinEdgeMagnitude() const		{ return MinEdgeMagnitude;		};

	bool operator == ( const avl::PDF417DetectionParams& rhs ) const
	{
		return ContrastThreshold == rhs.ContrastThreshold && 
			ContrastHysteresis == rhs.ContrastHysteresis && 
			DetectionScanCount == rhs.DetectionScanCount && 
			ScanWidth == rhs.ScanWidth && 
			SmoothingStdDev == rhs.SmoothingStdDev && 
			MinEdgeMagnitude == rhs.MinEdgeMagnitude;
	}

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

};