如何在图像上使用warpPerspective metod并使用Android openCV在相机预览中显示?

时间:2017-09-08 17:28:52

标签: android opencv opencv4android homography

我一直在使用openCV构建一个Android应用程序,它使用Homography找到预期的纸张模式。在相机预览上显示纸张上的图像,就像这张图片上的矩形所在:found paper

我从perspectiveTransform获得了我需要的4个点,并且我已经设法用矩形ROI显示它上面的图片但是我需要用warp透视来做它因为点并不总是做矩形有时它是一个不同的四边形。我尝试使用warpPerspective的方式只能将相机视图卡在一帧中。

这是我的代码:

   protected void draw(final Mat src, final Mat dst) {

        if (dst != src) {
            src.copyTo(dst);
        }


        // Outline the found target in green.
        Core.line(dst, new Point(mSceneCorners.get(0, 0)),
                new Point(mSceneCorners.get(1, 0)), mLineColor, 4);
        Core.line(dst, new Point(mSceneCorners.get(1, 0)),
                new Point(mSceneCorners.get(2, 0)), mLineColor, 4);
        Core.line(dst, new Point(mSceneCorners.get(2, 0)),
                new Point(mSceneCorners.get(3, 0)), mLineColor, 4);
        Core.line(dst, new Point(mSceneCorners.get(3,0)),
                new Point(mSceneCorners.get(0, 0)), mLineColor, 4);

        Core.rectangle(dst, new Point(mSceneCorners.get(0, 0)),
                new Point(mSceneCorners.get(2, 0)), mLineColorII, 3);


        Mat a = new Mat(mSketchImage.height(), mSketchImage.width(), mSketchImage.type());
        Imgproc.warpPerspective(mSketchImage, a, mReferenceCorners, a.size());
}

我在 mReferenceCorners 字段中有角点。我用这条线计算了:

Core.perspectiveTransform(mReferenceCorners, mCandidateSceneCorners, homography);

这是我期望的结果:desired outcome

有人可以帮帮我吗?我究竟做错了什么? 谢谢。

0 个答案:

没有答案