2012-01-15 4 views
3

Ok je posterai mes de la vie à rébus stackoverflow après 4 jours de programmation sans esprit quand rien ne semble faire les choses ou du moins près de droite. désolé d'être un peu dramatique mais je me sens comme un programmeur moche aujourd'hui.reconstruction 3D C++ avec OpenCV..Fundamental Matrice trop grand

Quoi qu'il en soit, mon problème est:

Pour obtenir la matrice fondamentale en utilisant RANSAC (N> 8).

J'ai deux images avec une large base, mais un chevauchement suffisant pour que quantité suffisante de keypoints SURF (~ 308) correspondent correctement (i tracer le graphe).

se trouve maintenant le problème. Je passe les points 2D à cv :: findFindamentalMat mais j'obtiens des résultats complètement sans fondement. La fonction retourne:

 FundMat=[2.05148e-13 3.72341 -2.03671e+10 
       1.6701e+26 -4.17712 4.59533e+29 
       3.32414e+18 2.8843 1.91069e-26] 

Pour contourner la grande plage dynamique de la matrice, Hartley a suggéré de normaliser les points de données (dans l'espace euclidien et non pas la normalisation de l'espace de projection) .... Même après avoir fait que le résultat est le presque le même. (10^-9 à 10^9)

Je comprends que FundMat est exacte seulement jusqu'à l'échelle, mais une différence de 10^^ -9 à 10 + 9 est trop.

j'ai parlé à d'autres questions ici, mais je ne semblent avoir aucune piste: findfundamentalmatrix-doesnt-find-fundamental-matrix how-to-calculate-the-fundamental-matrix-for-stereo-vision

Toutes les idées seraient grandes. C'est une étape très importante lorsque l'on considère des images non calibrées pour le reste du pipeline logiciel.

n cas, le code est utile. (il n'est pas indenté et coloré si..space est trop moins ici.) https://sites.google.com/site/3drecon124/

Répondre

0

son résolu ... erreur humaine stupide. il y avait une conversion de type de données double pour flotter et il a causé des données à extraire à partir d'emplacements incorrects dans la mémoire. maintenant sa contrainte lisse et épipolaire est satisfaite jusqu'à l'échelle.