public void FindPeaksTest4() { Bitmap hand = Properties.Resources.rhand2; GaussianBlur median = new GaussianBlur(1.1); median.ApplyInPlace(hand); // Extract contour BorderFollowing bf = new BorderFollowing(20); List <IntPoint> contour = bf.FindContour(hand); hand = hand.Clone(new Rectangle(0, 0, hand.Width, hand.Height), PixelFormat.Format24bppRgb); // Find peaks KCurvature kcurv = new KCurvature(30, new DoubleRange(0, 45)); var peaks = kcurv.FindPeaks(contour); List <IntPoint> supports = new List <IntPoint>(); for (int i = 0; i < peaks.Count; i++) { int j = contour.IndexOf(peaks[i]); supports.Add(contour[(j + kcurv.K) % contour.Count]); supports.Add(contour[Accord.Math.Tools.Mod(j - kcurv.K, contour.Count)]); } // show(hand, contour, peaks, supports); Assert.AreEqual(1, peaks.Count); Assert.AreEqual(18, peaks[0].X); Assert.AreEqual(0, peaks[0].Y); }