Alternative to opencv warpPerspective(OpenCV扭曲透视的替代方案)
问题描述
我正在使用OpenCV warpVision()函数扭曲图像中找到的反轮廓,以找到我正在使用findContours()查找的轮廓。
如下图所示:
但warpVision()函数需要"更多时间"才能将图像扭曲为全图。是否有其他方法可以将图像中的对象扭曲为全图,如图所示。 或者遍历会有帮助吗?但这样做会很困难,这样我就可以减少warpVision()函数所用的时间。
推荐答案
您可以尝试处理rotation和translation矩阵(或旋转平移矩阵,两者的组合),它们可以随意扭曲图像。函数warpVision()使用类似的方法,因此您基本上将有机会查看该函数的内部。
方法是:
计算矩阵,然后将 用于查找输出图像尺寸的原始图像。
遍历原始图像中的所有像素并将其相乘 矩阵R的(x,y)坐标 (旋转/平移/旋转平移矩阵)以获取 输出图像上的坐标(xo,yo)。对每个计算出的坐标(xo,yo)从 对应的原始图像坐标(x,y)。
使用中值滤波/双线性/双三次等方法进行内插 有时输出图像上可能会留有空点
所以,我认为你可以绕过warpVision(),但是,我不确定你是否可以在没有任何提升(如GPU、强大的CPU等)的情况下,比OpenCV更快:)
祝你好运!
这篇关于OpenCV扭曲透视的替代方案的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:OpenCV扭曲透视的替代方案


基础教程推荐
- C++ 标准:取消引用 NULL 指针以获取引用? 2021-01-01
- 设计字符串本地化的最佳方法 2022-01-01
- 您如何将 CreateThread 用于属于类成员的函数? 2021-01-01
- C++,'if' 表达式中的变量声明 2021-01-01
- 调用std::Package_TASK::Get_Future()时可能出现争用情况 2022-12-17
- 如何在 C++ 中处理或避免堆栈溢出 2022-01-01
- 什么是T&&(双与号)在 C++11 中是什么意思? 2022-11-04
- 运算符重载的基本规则和习语是什么? 2022-10-31
- C++ 程序在执行 std::string 分配时总是崩溃 2022-01-01
- 如何定义双括号/双迭代器运算符,类似于向量的向量? 2022-01-01