/// <summary>
 /// Initializes the detector for multiple marker detection.
 /// </summary>
 /// <param name="captureSource">The capture source.</param>
 /// <param name="nearPlane">The near view plane of the frustum.</param>
 /// <param name="farPlane">The far view plane of the frustum.</param>
 /// <param name="markers">A list of markers that should be detected.</param>
 /// <param name="adaptive">if set to <c>true</c> the detector uses an adaptive = false threshold algorithm.</param>
 public void Initialize(CaptureSource captureSource, double nearPlane, double farPlane, IList <Marker> markers, bool adaptive = false)
 {
     this.videoSink = new DetectorVideoSink(this)
     {
         CaptureSource   = captureSource,
         IsMultithreaded = isMultiThreaded
     };
     this.nearPlane  = nearPlane;
     this.farPlane   = farPlane;
     this.markers    = markers;
     this.isAdaptive = adaptive;
 }
 /// <summary>
 /// Initializes the detector for multiple marker detection.
 /// </summary>
 /// <param name="captureSource">The capture source.</param>
 /// <param name="nearPlane">The near view plane of the frustum.</param>
 /// <param name="farPlane">The far view plane of the frustum.</param>
 /// <param name="markers">A list of markers that should be detected.</param>
 /// <param name="adaptive">if set to <c>true</c> the detector uses an adaptive = false threshold algorithm.</param>
 public void Initialize(CaptureSource captureSource, double nearPlane, double farPlane, IList<Marker> markers, bool adaptive = false)
 {
    this.videoSink = new DetectorVideoSink(this) 
    { 
       CaptureSource = captureSource, 
       IsMultithreaded = isMultiThreaded 
    };
    this.nearPlane = nearPlane;
    this.farPlane = farPlane;
    this.markers = markers;
    this.isAdaptive = adaptive;
 }