anchor.diff:      plain colour of the background is likely mixed up with an object on top of it
       *)
       let getActivePolygons (screenshot:byte[]) (iframeRect:System.Drawing.Rectangle) =
  -        let webcamImage = cropWebcamImage screenshot iframeRect
  +        use webcamImage = cropWebcamImage screenshot iframeRect
           []
   
   module PianoLogic =
  
positive.code:         coordsTopAndBottom
          |> Seq.pairwise
          |> Seq.zip (FSharpType.GetUnionCases typeof<Note>)
          |> Seq.map (fun (label, ((topRight, bottomRight), (topLeft, bottomLeft))) ->
              { Label = FSharpValue.MakeUnion(label, [||]) :?> Note; Points = [| topLeft; topRight; bottomRight; bottomLeft |] })
        
      let cropWebcamImage (screenshotBytes:byte[]) (iframeRect:System.Drawing.Rectangle) =
          let uncropped = Mat.FromImageData(screenshotBytes, ImreadModes.GrayScale)
          uncropped.SubMat(Rect(iframeRect.Left, iframeRect.Top, iframeRect.Width, iframeRect.Height))
  
      //assumes polygons slopes down from left to right
      let createMaskImage (topLeft:Point) (topRight:Point) (bottomLeft:Point) (bottomRight:Point) =
          let contours = new Collections.Generic.List<Collections.Generic.IEnumerable<Point>>()
          let mask =
              Mat.Zeros(
                  topLeft.Y - bottomRight.Y,
                  bottomRight.X - topLeft.X,
                  MatType.CV_8UC3).ToMat()
          mask.DrawContours(
                  contours :> Collections.Generic.IEnumerable<Collections.Generic.IEnumerable<Point>>,
                  -1,
                  Scalar(255., 255., 255.),
                  -1)
          mask
  
      let combineWithMaskImage (wholeImage:Mat) topLeft topRight bottomLeft bottomRight =
          use mask = createMaskImage topLeft topRight bottomLeft bottomRight
          let regionOfInterest = wholeImage.SubMat(Rect())
          Cv2.BitwiseAnd(InputArray.Create(mask), InputArray.Create(regionOfInterest), OutputArray.Create(mask))
  
      let euclidianDistance () =
          ()
  
negative.code:             (Point(394, 202), Point(364, 218))
              (Point(410, 203), Point(383, 218))
              (Point(423, 204), Point(394, 219))
              (Point(439, 205), Point(417, 220))
              (Point(455, 205), Point(431, 221))
              (Point(473, 206), Point(451, 222))
              (Point(489, 207), Point(467, 223))
  