Encontrar rotação e tradução mais adequadas a partir da decomposição da homografia

Estou tentando encontrar a rotação e tradução da função Homografia. Primeiro, eu calculo os pontos de recurso correspondentes e usandofindHomography() Eu calculei a Matriz de Homografia. Então, usandodecomposeHomographyMat(), Obtive quatro resultados de rotação e tradução.

O código que usei está abaixo:

Mat frame_1, frame_2;


frame_1 = imread("img1.jpg", IMREAD_GRAYSCALE);
frame_2 = imread("img2.jpg", IMREAD_GRAYSCALE);

vector<KeyPoint> keypts_1, keypts_2;
Mat desc1, desc2;

Ptr<Feature2D> ORB = ORB::create(100    );
ORB->detectAndCompute(frame_1, noArray(), keypts_1, desc1);
ORB->detectAndCompute(frame_2, noArray(), keypts_2, desc2);

Ptr<DescriptorMatcher> matcher = DescriptorMatcher::create("BruteForce-Hamming");
vector<DMatch> matches;
matcher->match(desc1, desc2, matches);

vector<Point2f>leftPts, rightPts;
    for (size_t i = 0; i < matches.size(); i++)
    {
        //queryIdx is the left Image
        leftPts.push_back(keypts_1[matches[i].queryIdx].pt);

        //trainIdx is the right Image
        rightPts.push_back(keypts_2[matches[i].trainIdx].pt);
    }

Mat cameraMatrix = (Mat1d(3, 3) << 706.4034, 0, 277.2018, 0, 707.9991, 250.6182, 0, 0, 1);
Mat H = findHomography(leftPts, rightPts);
vector<Mat> R, t, n;
decomposeHomographyMat(H, cameraMatrix, R, t, n);

Agora, qual é a rotação e translação corretas, pelo menos a mais adequada. Cheguei a verificar se a rotação é válida usando a função abaixo e descobri que todas são válidas.

bool isRotationMatrix(Mat &R)
{
    Mat Rt;
    transpose(R, Rt);
    Mat shouldBeIdentity = Rt * R;
    Mat I = Mat::eye(3, 3, shouldBeIdentity.type());

    return  norm(I, shouldBeIdentity) < 1e-6;
}

Por favor, alguém me sugere, que valor devo usar. E a tradução resultante é um valor escalado, que pode ser usado diretamente, diferente do caso de decomposição da Matriz Essencial? Aprecio muito se alguém puder me orientar a encontrar isso.

Agradecendo você!

questionAnswers(2)

yourAnswerToTheQuestion