使用scikit-image和RANSAC稳健地估计多项式几何变换

时间:2014-11-19 08:20:06

标签: python image-processing transformation scikit-image ransac

我想用scikit-image skimage.transform和skimage.measure.ransac

强大地估计多项式几何变换。

ransack文档提供了一个非常好的示例,说明如何使用相似变换完成该操作。这是怎么回事:

from skimage.transform import SimilarityTransform
from skimage.measure import ransac
model, inliers = ransac((src, dst), SimilarityTransform, 2, 10)

我需要使用skimage.transform.PolynomialTransform而不是SimilarityTransform,我需要能够指定多项式顺序。

但是RANSAC调用将PolynomialTransform()作为输入,它不接受任何输入参数。所需的多项式顺序确实在PolynomialTransform()的估计属性中指定...因此RANSAC调用使用多项式阶的默认值,即2,而我需要3阶或4阶多项式。

我怀疑这是一个基本的python问题? 提前谢谢!

1 个答案:

答案 0 :(得分:3)

我们可以在RANSAC中提供一种机制来将参数传递给估算器(随意提交票证)。然而,一个快速的解决方法是:

from skimage.transform import PolynomialTransform

class PolyTF_4(PolynomialTransform):
    def estimate(*data):
        return PolynomialTransform.estimate(*data, order=4)

然后可以将PolyTF_4类直接传递给RANSAC。