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

HBo*_*ouy 3 python transformation image-processing ransac scikit-image

我想用 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)
Run Code Online (Sandbox Code Playgroud)

我需要使用skimage.transform.PolynomialTransform而不是 ComparisonTransform,并且我需要能够指定多项式阶数。

但 RANSAC 调用采用 PolynomialTransform() 作为输入,它不采用任何输入参数。所需的多项式阶数确实在 PolynomialTransform() 的估计属性中指定...因此 RANSAC 调用使用多项式阶数的默认值,即 2,而我需要一个三阶或四阶多项式。

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

Ste*_*alt 5

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

from skimage.transform import PolynomialTransform

class PolyTF_4(PolynomialTransform):
    def estimate(*data):
        return PolynomialTransform.estimate(*data, order=4)
Run Code Online (Sandbox Code Playgroud)

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