gpt4 book ai didi

java - OpenCV:WarpPerspective 函数的参数是什么?

转载 作者:太空宇宙 更新时间:2023-11-03 22:13:30 28 4
gpt4 key购买 nike

我正在用 Java 构建一个使用 OpenCV 的应用程序。我以前没有使用过这个库,而且 Java 实现有点缺乏文档。我需要撤消透视扭曲图像以使其平方。我需要将梯形转换为矩形。基本上我需要拉伸(stretch)两条平行边中较短的一条以匹配较长平行边的长度。我知道我需要计算单应性并使用 WarpPerspective 函数,但我不知道如何构造此命令。我知道什么是单应性,但我不知道如何声明单应性,也不知道将什么输入 warpPerspective。我强调一下,我理解理论,我只需要学习代码中的文本语法。

举例来说,假设我的源梯形在 (0,20)、(0,80)、(200,0) 和 (200,100) 处有角。然后我想以 (0,0)、(0,100)、(200,0) 和 (200,200) 的矩形“拉伸(stretch)”结束。任何人都可以提供代码示例吗?图片为 Mat 格式。

最佳答案

Source Image

Destination Image

java代码

corners.add(new Point(215,90));
corners.add(new Point(470,90));
corners.add(new Point(540,240));
corners.add(new Point(150,240));
double maxWidth = 540 - 150 ;//BottomRight.x - BottomLeft.x
double maxHeight = 240 - 90 ; //BottomRight.y - TopLeft.y

target.add(new Point(0,0));
target.add(new Point(maxWidth-1,0));
target.add(new Point(0,maxHeight-1));
target.add(new Point(maxWidth-1,maxHeight-1));
trans=Imgproc.getPerspectiveTransform(Converters.vector_Point2f_to_Mat(corners), Converters.vector_Point2f_to_Mat(target));

Imgproc.warpPerspective(img, proj, trans, new Size(maxWidth,maxHeight));

orignal.updateFrame(Utils.fromMatToBufferedImage(img));

proj 是目标 Mat

关于java - OpenCV:WarpPerspective 函数的参数是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25766543/

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