Tout d'abord, bonjour a tous et à toutes, je suis nouveau sur ce forum. Je suis étudiant en informatique et j'ai un soucis.
Je suis en train de travailler sur un code permettant de trouver un plan commun a plusieurs données 3D.
J'ai trouvé un code en c sur internet mais je ne comprends pas bien les étapes de calculs.
J'explique les étapes que j'ai comprise:
- On cherche avec ransac : pour n itérations
---> On prend 3 points (A,B,C) au hasard et on calcule la barycentre Pmean
---> On calcul vCA vBA et on calcul le produit vectorielle vNormal qui est la normal du plan formé par ces 3 points.
---> Ensuite cherche l'erreur de cette ensemble:
>> Pour chaque points on calcule le vecteur vPmean = v( Pmean - P)
>> On calcule le produit scalaire vNormal*vPMean
>> on l'ajoute a l'erreur de l'ensemble
---> SI le cumule des erreurs est inférieurs à la meilleur erreur >> VnormalBest = Vnormal et VmeanBest = vmean
- Une fois que ransac est fini et que l'on a les VnormalBest et vmean on cherche les inliers.
- Après que l'on ait les inliers, on cherche le barycentre des points présents PInliersmeans = somme (points)/nbpoints.
- Après c'est dit que l'on cherche la covariance en construisant une matrice m3cov de taille 3x3
---> Pour cela, pour chaque Inlier, on calcul le vecteur formé par les points (PInliersmeans , Pinliers) = vImI
---> On crée une matrice 3x3 issue de la multiplication de vImI et de sa transposé M33 = vImI*vImIT
---> Et on ajoute à la m3cov (initialisé à une matrice identité) m3cov = m3cov +m33.
- Apres lorsque la boucle est faite il sort une normal issue de la décomposition singulière de m3cov ... :marteau:
C'est la que je ne pige pas,comment ca se fait qu'il peut obtenir la normal que je suppose être une normal moyenne a partir de m3cov??
Je suis conscient que ca fait un pavass mais si quelqu'un pouvait m'expliquer je lui serai très reconnaissant.
D'avance merci.