JavaCV断言失败

JavaCV断言失败,java,opencv,k-means,javacv,Java,Opencv,K Means,Javacv,我试图使用K-means JavaCV实现,但我有以下错误: OpenCV Error: Assertion failed (!centers.empty()) in cvKMeans2, file src\matrix.cpp, line 4233 我的源代码是: IplImage src = cvLoadImage(fileName, CV_LOAD_IMAGE_COLOR); int cluster_count = 3; int attempts = 10; CvTermCriteri

我试图使用K-means JavaCV实现,但我有以下错误:

OpenCV Error: Assertion failed (!centers.empty()) in cvKMeans2, file src\matrix.cpp, line 4233
我的源代码是:

IplImage src = cvLoadImage(fileName, CV_LOAD_IMAGE_COLOR);

int cluster_count = 3;
int attempts = 10;
CvTermCriteria termCriteria = new CvTermCriteria(TermCriteria.EPS + TermCriteria.MAX_ITER, 10, 1.0);

cvReshape(src, src.asCvMat(), 1, src.height() * src.width());
IplImage samples = cvCreateImage(cvGetSize(src), src.depth(), 1);
cvConvertImage(src, samples, CV_32F);

IplImage labels = cvCreateImage(new CvSize(samples.height()), 1, CV_8U);
IplImage centers = cvCreateImage(new CvSize(cluster_count), 1, CV_32F);

cvKMeans2(samples, cluster_count, labels, termCriteria, 1, new long[attempts], KMEANS_RANDOM_CENTERS, centers, new double[attempts]);

我是JavaCV的初学者,我想知道我在这段代码中做错了什么?

使用
IplImage
?,使用
Mat
会对你有什么影响?使用
IplImage
的任何具体原因,使用
Mat
会对你有什么影响?