图像根据顶点任意拉伸C++

问题描述 投票:0回答:1

enter image description here enter image description here

我有一个问题是将图片 1 拉伸到图片 2 .

如果我有拉伸图像坐标,我可以将图像 1 拉伸为看起来像图像 2 吗?

这看起来很难,因为我只能旋转它,不能拉伸内容。我没有找到这样的算法来帮助我。另外,我注意到拉伸后的图片会是背景透明的图片,图片大小不一定和原来一样。所以我认为拉伸后的图片内容发生了变化。第二张图的ABCD字和第一张相比有明显的变化。 这个问题困扰了我很久。我现在得到的是原图的YUV分量,需要旋转的四个角坐标

目前我只能用photoshop把它拉伸成类似的样子。但我的任务是用 c++ 实现这个功能。

有人可以帮助我吗?给我一个有用的算法地址或者给我一些思路,非常感谢!

c++ image-processing opengl mfc visual-studio-2019
1个回答
0
投票

要将图像 1 拉伸成图像 2 的样子,您需要执行称为图像变形的过程。这涉及将原始图像的像素坐标映射到拉伸图像中的新位置。然而,这不是一项简单的任务,需要先进的图像处理技术。

一种可能的方法是使用单应性估计,这涉及找到一个变换矩阵,将原始图像的坐标映射到拉伸图像的坐标。这可以使用 RANSAC 或最小二乘优化等技术来完成。

一旦你有了变换矩阵,你就可以使用它来使用双线性插值或最近邻插值等技术将原始图像变形为拉伸图像。

如果你有原始图像的YUV分量和需要旋转的四个角坐标,你可以用这些来估计单应矩阵。然而,这仍然是一项复杂的任务,需要图像处理和计算机视觉的高级知识。

有几个可用的库和框架可以帮助您在 C++ 中实现此功能,例如 OpenCV 或 DLIB。这些库提供了广泛的图像处理函数和算法,包括图像变形和单应性估计。您可能会发现探索这些库及其文档有助于找到适合您任务的解决方案。

强文

© www.soinside.com 2019 - 2024. All rights reserved.