оценить 2D преобразование между двумя наборами точек, используя Ransac

Как я знаю, OpenCV использует RANSAC для решения проблемы findhomograph и он возвращает некоторые полезные параметры, такие как homograph_mask, Однако, если я хочу оценить только двумерное преобразование, которое означает аффинную матрицу, есть ли способ использовать ту же методологию findHomography который использует RANSAC и возвращает эту маску?

2

Решение

estimateRigidTransform действительно использует RANSAC для внутреннего использования, хотя параметры на данный момент зафиксированы — см. код здесь — https://github.com/opencv/opencv/blob/master/modules/video/src/lkpyramid.cpp

cv::Mat cv::estimateRigidTransform( InputArray src1, InputArray src2, bool fullAffine )
{
const int RANSAC_MAX_ITERS = 500;
const int RANSAC_SIZE0 = 3;
const double RANSAC_GOOD_RATIO = 0.5;

// ...

// RANSAC stuff:
// 1. find the consensus
for( k = 0; k < RANSAC_MAX_ITERS; k++ )
{
int idx[RANSAC_SIZE0];
Point2f a[RANSAC_SIZE0];
Point2f b[RANSAC_SIZE0];

// choose random 3 non-complanar points from A & B
for( i = 0; i < RANSAC_SIZE0; i++ )
{
for( k1 = 0; k1 < RANSAC_MAX_ITERS; k1++ )
{
4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]