j'ai posé une question concernant les transformations Bi linéaires et ont reçu cette réponse:Aide Comprendre ces équations?
À partir de cette même page que vous avez publié, il y a un lien vers le code de la source . Je vais vous expliquer la transformation bilinéaire en
http://www.antigrain.com/__code/include/agg_trans_bilinear.h.html
L'idée ici est de trouver une transformation de la forme:
output_x = a * input_x + b * input_x * input_y + c * input_y + d
output_y = e * input_x + f * input_x * input_y + g * input_y + h
Le terme « bilinéaire » vient de chacun de ces équations étant linéaire l'une des coordonnées d'entrée par eux-mêmes. Nous voulons résoudre pour les bonnes valeurs de a, b, c et d. Dites que vous avez la référence rectangle r1, r2, r3, r4 que vous souhaitez mapper à (0,0), (1,0), (0,1), (1,1) (ou un système de coordonnées d'image).
a, b, c, d:
0 = a * r1_x + b * r1_x * r1_y + c * r1_y + d
1 = a * r2_x + b * r2_x * r2_y + c * r2_y + d
0 = a * r3_x + b * r3_x * r3_y + c * r3_y + d
1 = a * r4_x + b * r4_x * r4_y + c * r4_y + d
Pour e, f, g, h:
0 = e * r1_x + f * r1_x * r1_y + g * r1_y + h
0 = e * r2_x + f * r2_x * r2_y + g * r2_y + h
1 = e * r3_x + f * r3_x * r3_y + g * r3_y + h
1 = e * r4_x + f * r4_x * r4_y + g * r4_y + h
Vous pouvez résoudre ce comme bon vous semble le mieux. (Si vous connaissez la notation matricielle , il s'agit de deux équations matricielles pour lesquelles la matrice est la même, puis vous devez simplement trouver la décomposition LU une fois et résoudre les deux vecteurs inconnus). Les coefficients sont ensuite appliqués pour mapper l'intérieur du rectangle à la position dans le rectangle .
Le problème est, je input_x et input_y aswell comme r1, r2, r3, r4, mais je ne suis pas sûr de savoir comment atteindre output_x et output_y. Comment puis-je résoudre une telle équation? Je ne connais que la résolution d'équations avec 2 variables.
Merci