Remarque: cela dépend des coordonnées que vous utilisez dans l'image redimensionnée. Je suppose que vous utilisez un système basé sur zéro (comme C
, contrairement à Matlab
) et que 0 est transformé en 0. De plus, je suppose que vous n'avez pas d'inclinaison entre les coordonnées. Si vous avez un biais, il doit également être multiplié
Réponse courte : en supposant que vous utilisez un système de coordonnées dans lequel u′=u2,v′=v2 , oui, vous devez multiplierax,ay,u0,v0par 0,5.
Réponse détaillée La fonction qui convertit un point P en coordonnées universelles en coordonnées de caméra (x,y,z,1)−>(u,v,S) est:
⎛⎝⎜ax000ay0u0v01⎞⎠⎟⎛⎝⎜⎜⎜R11R21R310R12R22R320R13R23R330TxTyTz1⎞⎠⎟⎟⎟⎛⎝⎜⎜⎜xyz1⎞⎠⎟⎟⎟
Où (u,v,S)−>(u/S,v/S,1) , puisque les coordonnées sont homogènes.
En bref, cela peut s'écrire
u=m1Pm3P,v=m2Pm3P
oùMest le produit des deux matrices mentionné cidessus, etmiest la iième rangée de la matrice deM. (Le produit est un produit scalaire).
Le redimensionnement de l'image peut être pensé:
u′= u / 2 , v′= v / 2
Donc
u′= ( 1 / deux ) M1PM3Pv′= ( 1 / deux ) M2PM3P
La reconversion sous forme matricielle nous donne:
⎛⎝⎜0,50000,50001⎞⎠⎟⎛⎝⎜uneX000uney0u0v01⎞⎠⎟⎛⎝⎜⎜⎜R11R21R310R12R22R320R13R23R330TXTyTz1⎞⎠⎟⎟⎟⎛⎝⎜⎜⎜Xyz1⎞⎠⎟⎟⎟
Qui est égal à
⎛⎝⎜0,5 aX0000,5 ay00,5 u00,5 v01⎞⎠⎟⎛⎝⎜⎜⎜R11R21R310R12R22R320R13R23R330TXTyTz1⎞⎠⎟⎟⎟⎛⎝⎜⎜⎜Xyz1⎞⎠⎟⎟⎟
Pour plus d'informations, reportez-vous au chapitre 3 de Forsyth - Étalonnage de la caméra géométrique.
Andrey a mentionné que sa solution suppose que 0 est transformé en 0. Si vous utilisez des coordonnées de pixels, ce n'est probablement pas vrai lorsque vous redimensionnez l'image. La seule hypothèse que vous devez vraiment faire est que votre transformation d'image puisse être représentée par une matrice 3x3 (comme l'a montré Andrey). Pour mettre à jour la matrice de votre caméra, vous pouvez simplement la multiplier par la matrice représentant la transformation de votre image.
Par exemple, disons que vous devez modifier la résolution d'une image d'un facteur et que vous utilisez 0 coordonnées de pixels indexées. Vos coordonnées sont transformées par les relations2n
cela peut être représenté par la matrice
de sorte que votre matrice de caméra finale serait
la source