【发布时间】:2019-10-03 15:03:47
【问题描述】:
我用过OpencvSharp中集成的Kmeans函数是这样的:
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值....如何获取?
【问题讨论】:
标签: c# k-means opencvsharp