3

我想用 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问题?提前致谢!

4

1 回答 1

4

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

from skimage.transform import PolynomialTransform

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

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

于 2014-11-19T12:56:14.520 回答