我正在使用opencv warpPerspective()函数在图像中扭曲找到的轮廓以找到轮廓,而我正在使用findContours()。
这在这张图中显示:
但是warpPerspective()函数需要“更多时间”才能扭曲为完整图像,如图所示,该函数还有其他选择可以将图像中的对象扭曲为完整图像。 还是会遍历有帮助?但这很难做到,这样我可以减少warpPerspective()函数花费的时间。
答案 0 :(得分:0)
您可以尝试处理rotation和translation矩阵(或旋转平移矩阵,两者的组合),它们可以使图像变形。函数warpPerspective()使用类似的方法,因此您基本上将有机会查看函数内部。
方法是:
您计算矩阵,然后将高度和宽度相乘 原始图像以查找输出图像的尺寸。
浏览原始图像中的所有像素,并将其相乘 (x,y)坐标到矩阵R (旋转/平移/旋转平移矩阵)以获取 坐标在输出图像(xo,yo)上。
在每个计算的坐标(xo,yo)上从 相应的原始图像坐标(x,y)。
使用中值滤波器/双线性/双三次/等进行插值。方法为 有时在输出图像上可能会留下空白点
但是,如果您使用Python工作,则其实现可能比warpPerspective()还要慢,因此您可以考虑使用C ++。另一件事是OpenCV使用C ++编译器,而且我很确定OpenCV中warpPerspective()的实现非常有效。
因此,我认为您可以解决warpPerspective()的问题,但是,我不确定是否可以在没有任何提升(例如GPU,强大的CPU等)的情况下比OpenCV更快地完成它:)
祝你好运!