尽管Python教程使用的是一维数据,但我不能在C++接口中做同样的事情:
int size=100;
std::vector<float> data(size);
for (size_t i = 0; i < size ; i++)
{
data[i] = (float)i; //placeholder
}
std::vector<int> labels;
std::vector<float> centers;
cv::kmeans(data, 3, labels,
cv::TermCriteria(CV_TERMCRIT_ITER+CV_TERMCRIT_EPS, 10, 0.1),
3, cv::KMEANS_PP_CENTERS, centers);
这个错误是因为cv::kmeans期望输入是二维的所以导致内部断言失败。CV_Assert(N>=K)
失败是因为K为3而N为1。我的错误在哪里?