Я использовал функцию 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 для каждого центра .... как я могу получить его?