【发布时间】:2014-12-21 00:22:31
【问题描述】:
我是 JavaCV 的初学者。我正在尝试处理图像上的 K 均值。但是,我从以下代码中得到了运行时错误。我不知道如何解决它并成功处理 K 均值。感谢您的帮助。
这是错误:
OpenCV Error: Assertion failed (labels.isContinuous() && labels.type() == CV_32S &&
(labels.cols == 1 || labels.rows == 1) && labels.cols + labels.rows - 1 == data.rows) in
cvKMeans2
这是我的 JavaCV 代码:
import static org.bytedeco.javacpp.opencv_core.*;
import static org.bytedeco.javacpp.opencv_highgui.*;
import org.bytedeco.javacv.CanvasFrame;
public class KMeansTest {
public static void runTest(){
IplImage image = cvLoadImage("img/2014-05-18_181424.png");
CvMat model = image.asCvMat();
//Number of cluster
int k=2;
CvMat cluster = model.clone();
cvKMeans2(model, k, cluster, cvTermCriteria(CV_TERMCRIT_EPS + CV_TERMCRIT_ITER, 10, 1.0));
CanvasFrame canvas = new CanvasFrame("My Image", 1);
canvas.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
canvas.showImage(cluster.asIplImage());
}
}
【问题讨论】:
标签: java opencv k-means javacv