J'ai donc utilisé gnu-gsl et CImg pour implémenter certaines des techniques fondamentales de l'espace projectif pour la rectification affine et métrique. J'ai terminé le calcul d'une rectification affine mais, j'ai du mal à comprendre comment appliquer la matrice de rectification affine à l'image originale (entrée).transformations d'images
Mon processus de réflexion actuel consiste à parcourir l'image d'entrée pour chaque coordonnée de pixel. Multipliez ensuite la coordonnée de pixel originale (convertie en une coordonnée homogène) par la matrice de rectification affine pour obtenir la coordonnée de pixel de sortie.
Accédez ensuite à l'image de sortie en utilisant la coordonnée de pixel de sortie et effectuez une opération de mélange (addition) sur l'emplacement de pixel de l'image de sortie avec la couleur de pixel de l'image originale.
Cela vous semble-t-il correct? Je reçois beaucoup de valeurs vraiment bizarres après avoir multiplié la coordonnée de pixel originale par la matrice de rectification affine.
J'ai compris qu'une grande partie de mon problème était liée à la normalisation des coordonnées. * soupir * quelque peu évident. Cela dit, j'ai remarqué que la plupart des coordonnées de l'image que j'ai récupérées du système sont des valeurs négatives. Ils ressemblent en fait à des coordonnées de pixels, juste négatives. Un peu étrange ... Je suppose que je pourrais comparer ce que gnu-gsl fait contre Matlab. En ce qui concerne l'application de la transformation, j'ai trouvé un code de référence qui conduit une multiplication matricielle-vectorielle (par élément). Cela semble faire l'affaire. –
Il me semble que vous devriez faire un petit exemple de vérité au sol, avec des données de test connues, des paramètres connus et des résultats connus. Ensuite, les problèmes de normalisation des coordonnées, l'emplacement de l'origine, etc. peuvent être levés pendant que vous réparez votre système. – koan