Ejemplo n.º 1
0
 /// <summary>
 /// matches two contours using one of the available algorithms
 /// </summary>
 /// <param name="contour1"></param>
 /// <param name="contour2"></param>
 /// <param name="method"></param>
 /// <param name="parameter"></param>
 /// <returns></returns>
 public static double MatchShapes(IEnumerable<Point> contour1, IEnumerable<Point> contour2,
     ShapeMatchModes method, double parameter = 0)
 {
     if (contour1 == null)
         throw new ArgumentNullException(nameof(contour1));
     if (contour2 == null)
         throw new ArgumentNullException(nameof(contour2));
     Point[] contour1Array = EnumerableEx.ToArray(contour1);
     Point[] contour2Array = EnumerableEx.ToArray(contour2);
     return NativeMethods.imgproc_matchShapes_Point(contour1Array, contour1Array.Length, 
         contour2Array, contour2Array.Length, (int)method, parameter);
 }
Ejemplo n.º 2
0
 /// <summary>
 /// matches two contours using one of the available algorithms
 /// </summary>
 /// <param name="contour1"></param>
 /// <param name="contour2"></param>
 /// <param name="method"></param>
 /// <param name="parameter"></param>
 /// <returns></returns>
 public static double MatchShapes(InputArray contour1, InputArray contour2, ShapeMatchModes method, double parameter = 0)
 {
     if (contour1 == null)
         throw new ArgumentNullException(nameof(contour1));
     if (contour2 == null)
         throw new ArgumentNullException(nameof(contour2));
     var ret = NativeMethods.imgproc_matchShapes_InputArray(contour1.CvPtr, contour2.CvPtr, (int)method, parameter);
     GC.KeepAlive(contour1);
     GC.KeepAlive(contour2);
     return ret;
 }