我想用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问题? 提前谢谢!
答案 0 :(得分:3)
我们可以在RANSAC中提供一种机制来将参数传递给估算器(随意提交票证)。然而,一个快速的解决方法是:
from skimage.transform import PolynomialTransform
class PolyTF_4(PolynomialTransform):
def estimate(*data):
return PolynomialTransform.estimate(*data, order=4)
然后可以将PolyTF_4
类直接传递给RANSAC。