kmeans function
(double, Mat, Mat)
kmeans(
- InputArray data,
- int K,
- InputOutputArray bestLabels,
- (int, int, double) criteria,
- int attempts,
- int flags, {
- OutputArray? centers,
KMeans finds centers of clusters and groups input samples around the clusters.
For further details, please see: https://docs.opencv.org/master/d5/d38/group__core__cluster.html#ga9a34dc06c6ec9460e90860f15bcd2f88
Implementation
(double rval, Mat bestLabels, Mat centers) kmeans(
InputArray data,
int K,
InputOutputArray bestLabels,
(int, int, double) criteria,
int attempts,
int flags, {
OutputArray? centers,
}) {
centers ??= Mat.empty();
final rval = cvRunArena<double>((arena) {
final p = arena<ffi.Double>();
cvRun(
() => cffi.KMeans(
data.ref,
K,
bestLabels.ref,
TermCriteria.fromRecord(criteria).ref,
attempts,
flags,
centers!.ref,
p,
),
);
return p.value;
});
return (rval, bestLabels, centers);
}