Question

J'ai deux images capturées de deux caméras de même marque placées à distance, capturant la même scène.Je veux calculer la rotation et la traduction du monde réel entre les deux caméras.Afin de y parvenir, j'ai d'abord extrait les caractéristiques des tamis des deux images et les assorti.

J'ai maintenant matrice fondamentale ainsi que matrice d'homographie .Cependant, incapable de procéder plus loin, beaucoup de confusion.Quelqu'un peut-il m'aider à estimer la rotation et la traduction entre deux caméras?

J'utilise OpenCV pour une extraction de fonctionnalités et une correspondance, des calculs d'homosible.

Était-ce utile?

La solution

Si vous avez l'homographie, vous avez également la rotation.Une fois que vous avez une homographie, il est facile d'obtenir une matrice de rotation et de traduction.

Par exemple, si vous utilisez OpenCV C ++:

param[in] H
param[out] pose
void cameraPoseFromHomography(const Mat& H, Mat& pose)
{
    pose = Mat::eye(3, 4, CV_32FC1);      // 3x4 matrix, the camera pose
    float norm1 = (float)norm(H.col(0));  
    float norm2 = (float)norm(H.col(1));  
    float tnorm = (norm1 + norm2) / 2.0f; // Normalization value

    Mat p1 = H.col(0);       // Pointer to first column of H
    Mat p2 = pose.col(0);    // Pointer to first column of pose (empty)

    cv::normalize(p1, p2);   // Normalize the rotation, and copies the column to pose

    p1 = H.col(1);           // Pointer to second column of H
    p2 = pose.col(1);        // Pointer to second column of pose (empty)

    cv::normalize(p1, p2);   // Normalize the rotation and copies the column to pose

    p1 = pose.col(0);
    p2 = pose.col(1);

    Mat p3 = p1.cross(p2);   // Computes the cross-product of p1 and p2
    Mat c2 = pose.col(2);    // Pointer to third column of pose
    p3.copyTo(c2);       // Third column is the crossproduct of columns one and two

    pose.col(3) = H.col(2) / tnorm;  //vector t [R|t] is the last column of pose
}

Cette fonction calcule la pose de la cammographie, dans laquelle la rotation est contenue.Pour plus d'informations théoriques, suivez ce thread .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top