我正在使用opencv warpPerspective()函数扭曲图像中找到的countour以找到轮廓,而我正在使用findContours()。

如图所示:

python - 替代opencv warpPerspective-LMLPHP

但是warpPerspective()函数需要“更多时间”才能扭曲为完整图像,如图所示,该函数还有其他选择可以将图像中的对象扭曲为完整图像。
或遍历会有所帮助吗?但这很难做到,这样我可以减少warpPerspective()函数花费的时间。

最佳答案

您可以尝试处理rotationtranslation矩阵(或旋转平移矩阵,两者的组合),它们可以使图像变形。函数warpPerspective()使用类似的方法,因此您基本上将有机会查看函数内部。

该方法是:

  • 您需要计算矩阵,然后乘以
    原始图像以查找输出图像的尺寸。
  • 遍历原始图像中的所有像素并将其相乘
    (x,y)坐标到矩阵R
    (旋转/平移/旋转平移矩阵)以获取
    输出图像上的坐标(xo,yo)。
  • 在每个计算的坐标(xo,yo)上,从
    相应的原始图像坐标(x,y)。
  • 使用中值滤波器/双线性/双三次/等进行插值。方法为
    有时在输出图像上可能会留下空白点

  • 但是,如果您使用Python工作,则其实现可能比warpPerspective()还要慢,因此您可以考虑使用C++。另一件事是OpenCV使用C++编译器,而且我很确定OpenCV中warpPerspective()的实现非常有效。

    因此,我认为您可以解决warpPerspective()的问题,但是,我不确定是否可以在没有任何提升(例如GPU,强大的CPU等)的情况下比OpenCV更快地完成它:)

    祝好运!

    关于python - 替代opencv warpPerspective,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56325847/

    10-12 20:20