Le calibrage de l'appareil photo est utilisé pour corriger la distorsion de l'objectif, mais il semble difficile de comprendre comment chaque coefficient l'affecte.
Je vais donc essayer de le comprendre intuitivement.
À moins qu'il ne s'agisse d'un modèle d'appareil photo à sténopé idéal, l'image est déformée comme indiqué à gauche. En trouvant le coefficient de distorsion propre à la caméra, il est possible de corriger une telle image déformée.
Lorsque vous calibrez votre appareil photo, vous imprimez quelque chose appelé un damier.
Prenez des dizaines de photos sous tous les angles avec l'appareil photo dont vous souhaitez mesurer les paramètres.
Vous pouvez maintenant faire correspondre la coordonnée bidimensionnelle $ x $ de la caméra avec la coordonnée tridimensionnelle $ X $ de l'espace.
x = P X
Ce $ P $ est la matrice de la caméra. Il peut être calculé par des équations simultanées à 3 lignes et 4 colonnes.
P = K [R|t]
$ P $ peut être décomposé en la matrice triangulaire supérieure $ K $ et la matrice orthogonale normale $ R $.
$ K $ ...... Paramètre interne, paramètre intrinsèque (distance focale, centre optique, coefficient de cisaillement) $ [R | t] $ ... Paramètre externe, paramètre extrinsèque (rotation et conversion de la caméra)
Ce sera.
Ce paramètre interne $ K $
K = \begin{pmatrix}
f_x & s & c_x \\
0 & f_y & c_y \\
0 & 0 & 1 \\
\end{pmatrix}
Il représente la distance focale $ (f_x, f_y) $, le centre optique $ (c_x, c_y) $ et le coefficient de cisaillement $ s $.
En Python, vous pouvez utiliser OpenCV pour trouver $ K $ (mtx) comme suit.
#Détecter les points du damier
ret, corners = cv2.findChessboardCorners(gray, (8,6), None)
#Étalonnage
ret, mtx, dist, rvecs, tvecs = cv2.calibrateCamera(objpoints, imgpoints, img_size,None,None)
#Correction de la distorsion
dst = cv2.undistort(img, mtx, dist, None, newMtx)
Animons des paramètres tels que la distance focale, le centre optique et le coefficient de cisaillement, respectivement. Seuls les paramètres cibles sont modifiés à partir de la matrice de caméra obtenue.
Infini → Distance focale appropriée → Petite
(1)
(2)
(3)
Négatif → position correcte → positif
(1)
(1)
Négatif → valeur propre → positif En anglais, c'est Skew.
Comment était-ce. Il s'avère que le calibrage de l'appareil photo est utilisé pour corriger la distorsion.
Je veux aussi faire le coefficient de distorsion dans la direction radiale et le coefficient de distorsion dans la direction circonférentielle.
https://github.com/DavidWangWood/Camera-Calibration-Python https://jp.mathworks.com/help/vision/examples/evaluating-the-accuracy-of-single-camera-calibration.html