我想用 scikit-image skimage.transform 和 skimage.measure.ransac 稳健地估计多项式几何变换
搜查文档提供了一个很好的示例,说明如何使用相似性变换来做到这一点。事情是这样的:
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 问题? 提前致谢!
最佳答案
我们可以在 RANSAC 中提供一种机制来将参数传递给估算器(请随时提交工单)。然而,一个快速的解决方法是:
from skimage.transform import PolynomialTransform
class PolyTF_4(PolynomialTransform):
def estimate(*data):
return PolynomialTransform.estimate(*data, order=4)
然后可以将 PolyTF_4
类直接传递给 RANSAC。
关于python - 使用 scikit-image 和 RANSAC RobuSTLy 估计多项式几何变换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27011995/