gpt4 book ai didi

image-processing - 如何将 cv::remap 与正向网格而不是反向网格一起使用来扭曲图像?

转载 作者:太空宇宙 更新时间:2023-11-03 20:42:31 26 4
gpt4 key购买 nike

我有一个 11 x 11 顶点的网格。这个想法是每个点(顶点)都保存变形图像中该像素的归一化浮点位置。例如。如果我想拉伸(stretch)左上边缘,我写在第一个顶点 (-0.1, -0.1)。

我有网格,但没有图像变形功能。 cv::remap正是这样做的......但顺序相反 - 网格“说”哪些像素邻域要映射到输出上的规则网格。

OpenCV 中是否有处理反向变形的标准方法?我可以轻松地转换网格或使用其他功能吗?我正在使用 OpenCV 和 Boost,但任何免费的库/工具都适合我。

PS:我需要在 Linux PC 上运行它。

最佳答案

您需要为反向变换计算另一个映射。

但是,为此您需要变换公式或矩阵。

第 1 步:在重新映射的图像上选择 4 个点。如果拐角不是黑色(未定义),那么采取拐角是个好主意

第 2 步:在原始图像中找到它们的位置(查看 map )

第 3 步: 计算两组点之间的单应性。 findHomoraphy() 是关键。

第 4 步: warpPerspective 第二张图片。在内部,它计算网格,然后调用 remap();

如果您有与之前相同的变换,请在 findHomography 中将输入点与输出点反转,或 inv() 结果矩阵。

如果您想要多次调用 map (这比每次调用 warpPerspective 更快),您必须将代码从 warpPerspective 复制到一个新函数中。

关于image-processing - 如何将 cv::remap 与正向网格而不是反向网格一起使用来扭曲图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9034145/

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