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

标签 python image-processing transformation scikit-image ransac

我想用 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/

相关文章:

python - 从 __init__.py 重新导出模块的正确方法

python - 计算字典列表中的公共(public)键值对

image - 使用 Imagemagick,如何裁剪白色背景?

c++ - glm lookAt 和矩阵变换产生奇怪的行为

python - Jinja2模板,去掉回车

python - 删除符合条件的数据帧行的一半

java - 从一维数组构建图像

c# - GDI+:如何在后台线程上将 Graphics 对象渲染为位图?

c# - 使用 GDI+ 旋转图像而不剪切其边缘的最快方法是什么?

flash - Actionscript 翻译转换