Робастная оценка полиномиального геометрического преобразования с помощью scikit-изображения и RANSAC
Я хотел бы надежно оценить полиномиальное геометрическое преобразование с помощью 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-го порядка.
Я подозреваю, что это основная проблема с питоном? Заранее спасибо!
1 ответ
Мы могли бы предоставить механизм в RANSAC для передачи аргументов оценщику (не стесняйтесь подавать заявку). Быстрый обходной путь, однако, будет:
from skimage.transform import PolynomialTransform
class PolyTF_4(PolynomialTransform):
def estimate(*data):
return PolynomialTransform.estimate(*data, order=4)
PolyTF_4
класс может быть передан непосредственно в RANSAC.