gpt4 book ai didi

java - 如何通过选择图像中的四个点来拉直图像?

转载 作者:搜寻专家 更新时间:2023-11-01 02:39:53 27 4
gpt4 key购买 nike

我想通过在 java 中使用 opencv 的 getPerspectiveTransform() 方法在图像中选择四个点来拉直图像。我知道可以在 python 中使用 opencv 来完成: getPerspectiveTransform .如果有人使用它来实现图像拉直..请帮忙。

enter image description here

最佳答案

有透视变换可以用来实现四边形到四边形的转换。在OpenCV中,实现getPerspectiveTransformation()方法和warpPerspective()方法主要有两种方法。

下面是实现图像矫直的示例代码:

首先得到源图中的四个四线点

Mat srcImage = Imgcodecs.imread("input.png");
Mat destImage = new Mat(500, 700, srcImage.type());
Mat src = new MatOfPoint2f(new Point(x1, y1), new Point(x2, y2), new Point(x3, y3), new Point(x4, y4));
Mat dst = new MatOfPoint2f(new Point(0, 0), new Point(destImage.width() - 1, 0), new Point(destImage.width() - 1, destImage.height() - 1), new Point(0, destImage.height() - 1));

获取转换矩阵

Mat transform = Imgproc.getPerspectiveTransform(src, dst);
Imgproc.warpPerspective(srcImage, destImage, transform, destImage.size());

你会得到变直的图像。

我已经在这张图片上测试了这段代码。 input.png

结果图像是 output.png

关于java - 如何通过选择图像中的四个点来拉直图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36054795/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com