Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何添加点以绘制线以链接场景角点_Java_Opencv_Javacv_Opencv3.0 - Fatal编程技术网

Java 如何添加点以绘制线以链接场景角点

Java 如何添加点以绘制线以链接场景角点,java,opencv,javacv,opencv3.0,Java,Opencv,Javacv,Opencv3.0,我写了下面的代码来画线来链接对象图像的角点,我想做的是画线来链接场景图像的角点 对象放在左侧,场景放在右侧,由于我有对象角点,我想我只需要添加对象角点,以便: top left sceneCorner : objCorners.cols top right sceneCorner: objCorners.cols * 2 bottom right sceneCorner: objCorners.rows * 2 bottom left scenecorner: objCorners.rows

我写了下面的代码来画线来链接对象图像的角点,我想做的是画线来链接场景图像的角点

对象放在左侧,场景放在右侧,由于我有对象角点,我想我只需要添加对象角点,以便:

top left sceneCorner : objCorners.cols
top right sceneCorner: objCorners.cols * 2
bottom right sceneCorner: objCorners.rows * 2
bottom left scenecorner: objCorners.rows
现在我不知道如何添加这些坐标来绘制连接场景角点的线

代码:

    Mat objCorners = new Mat(4, 1, CvType.CV_32FC2);
    Mat sceneCorners = new Mat(4, 1, CvType.CV_32FC2);

    objCorners.put(0, 0, new double[] {0, 0});//top left
    objCorners.put(1, 0, new double[] {matFactory.getMatAt(0).cols(), 0});//top right
    objCorners.put(2, 0, new double[] {matFactory.getMatAt(0).cols(), matFactory.getMatAt(0).rows()});//bottom right
    objCorners.put(3, 0, new double[] {0, matFactory.getMatAt(0).rows()});//bottom left.

    sceneCorners.put(0, 0, new double[] {0, 0});//top left
    sceneCorners.put(1, 0, new double[] {matFactory.getMatAt(1).cols(), 0});//top right
    sceneCorners.put(2, 0, new double[] {matFactory.getMatAt(1).cols(), matFactory.getMatAt(1).rows()});//bottom right
    sceneCorners.put(3, 0, new double[] {0, matFactory.getMatAt(1).rows()});//bottom left.

    Log.D(TAG, "", "sceneCorners.size: " + sceneCorners.dump());
    Log.D(TAG, "", "objCorners.size: " + objCorners.dump());

    Core.perspectiveTransform(objCorners, sceneCorners, H);// the values inside sceneCorners matrix changes after this line as it is what this function returns. 

    Log.D(TAG, "", "sceneCorners.size: " + sceneCorners.dump());
    Log.D(TAG, "", "objCorners.size: " + objCorners.dump());

    //the below 4 lines are to draw line links between the objCorners.
    Core.line(outImg, new Point(objCorners.get(0, 0)), new Point(objCorners.get(1, 0)), new Scalar(0, 0, 255), 4);
    Core.line(outImg, new Point(objCorners.get(1, 0)), new Point(objCorners.get(2, 0)), new Scalar(0, 0, 255), 4);
    Core.line(outImg, new Point(objCorners.get(2, 0)), new Point(objCorners.get(3, 0)), new Scalar(0, 0, 255), 4);
    Core.line(outImg, new Point(objCorners.get(3, 0)), new Point(objCorners.get(0, 0)), new Scalar(0, 0, 255), 4);

    MatFactory.writeMat(FilePathUtils.newOutputPath("corners"), outImg);