如何在OpenCV Java中将一个Mat插入另一个Mat

时间:2018-07-23 16:09:23

标签: java opencv mat

在我的程序中,我需要从2个向量(称为x和y; x-第一列,y-第三列)中构造大矩阵D,但是我找不到任何方法来做到这一点。 OpenCV Java的文档非常差,方法没有描述,我也不知道大多数方法是如何工作的。我已经尝试使用push_back()方法,但是遇到运行时错误。我也尝试了copyTo()方法,但没有收到错误,但结果不正确。我的问题是:如何在不使用put()方法的情况下在OpenCV Java中将一个垫子插入另一个垫子?

static List<Double> fitEllipse(MatOfPoint points)
{
    System.out.println("Vector points: " + points);
    Mat x = new Mat(points.rows(), 1, CvType.CV_64FC1); // Everything needs to be stored 64 bits
    Mat y = new Mat(points.rows(), 1, x.depth());
    System.out.println("Vector x: " + x);
    Core.extractChannel(points, x, 0); // x value of a Point
    Core.extractChannel(points, y, 1); // y value of a Point
    Core.pow(x, 2.0, x);
    Core.pow(y, 2.0, y);
    Mat D = new Mat(x.rows(), 3, x.depth()); // Data will be stored here
    x.copyTo(D.col(0));                      /* This compiles, but results are bad*/
    System.out.println(D.dump());
    return null;
} 

0 个答案:

没有答案