/// <summary>
        ///
        /// </summary>
        /// <param name="clusterCount"></param>
        /// <param name="termcrit"></param>
        /// <param name="attempts"></param>
        /// <param name="flags"></param>
        public BOWKMeansTrainer(int clusterCount, TermCriteria?termcrit = null,
                                int attempts = 3, KMeansFlags flags = KMeansFlags.PpCenters)
        {
            var termCritValue = termcrit.GetValueOrDefault(new TermCriteria());

            ptr = NativeMethods.features2d_BOWKMeansTrainer_new(clusterCount, termCritValue, attempts, (int)flags);
        }
예제 #2
0
 internal static extern int cvKMeans2(
     Arr samples,
     int cluster_count,
     Arr labels,
     TermCriteria termcrit,
     int attempts,
     ref ulong rng,
     KMeansFlags flags,
     Arr _centers,
     out double compactness);
예제 #3
0
 /// <summary>
 /// clusters the input data using k-Means algorithm
 /// </summary>
 /// <param name="data"></param>
 /// <param name="k"></param>
 /// <param name="bestLabels"></param>
 /// <param name="criteria"></param>
 /// <param name="attempts"></param>
 /// <param name="flags"></param>
 /// <param name="centers"></param>
 /// <returns></returns>
 public static double Kmeans(InputArray data, int k, InputOutputArray bestLabels,
     TermCriteria criteria, int attempts, KMeansFlags flags, OutputArray centers = null)
 {
     if (data == null)
         throw new ArgumentNullException("data");
     if (bestLabels == null)
         throw new ArgumentNullException("bestLabels");
     data.ThrowIfDisposed();
     bestLabels.ThrowIfDisposed();
     double ret = NativeMethods.core_kmeans(data.CvPtr, k, bestLabels.CvPtr, criteria, attempts, (int)flags, ToPtr(centers));
     bestLabels.Fix();
     if(centers != null)
         centers.Fix();
     GC.KeepAlive(data); 
     return ret;
 }
예제 #4
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="clusterCount"></param>
 /// <param name="termcrit"></param>
 /// <param name="attempts"></param>
 /// <param name="flags"></param>
 public BOWKMeansTrainer(int clusterCount, TermCriteria? termcrit = null,
     int attempts = 3, KMeansFlags flags = KMeansFlags.PpCenters)
 {
     var termCritValue = termcrit.GetValueOrDefault(new TermCriteria());
     ptr = NativeMethods.features2d_BOWKMeansTrainer_new(clusterCount, termCritValue, attempts, (int)flags);
 }