Доступ к центроидному кластеру после K-средних в C # - PullRequest
0 голосов
/ 03 октября 2019

Я использовал функцию Kmeans, интегрированную в OpencvSharp, следующим образом:

                    Cv2.Kmeans(
                    data: samples,
                    k: clustersCount,
                    bestLabels: bestLabels,
                    criteria:
                        new TermCriteria(type: CriteriaType.Eps | 
                     CriteriaType.MaxIter, maxCount: 10, epsilon: 1.0),
                    attempts: 3, flags: KMeansFlags.PpCenters, centers: centers);

                var clusteredImage = new Mat(preprocessedImage.Rows, preprocessedImage.Cols, preprocessedImage.Type());
                for (var size = 0; size < preprocessedImage.Cols * preprocessedImage.Rows; size++)
                {
                    var clusterIndex = bestLabels.At<int>(0, size);
                    var newPixel = new Vec3b
                    {
                        Item0 = (byte)(centers.At<float>(clusterIndex, 0)), // B
                        Item1 = (byte)(centers.At<float>(clusterIndex, 1)), // G
                        Item2 = (byte)(centers.At<float>(clusterIndex, 2)) // R
                    };
                    clusteredImage.Set(size / preprocessedImage.Cols, size % preprocessedImage.Cols, newPixel);
                }

Теперь мне нужно получить значения BGR для каждого центра .... как я могу получить его?

...