J'ai un programme qui détecte des objets dans un flux vidéo en direct. Je cherche à compenser la distorsion de la caméra, j'ai utilisé l'outil de calibrage OpenCV et produit un fichier XML avec les paramètres pertinents.OpenCV appliquer la distorsion de la caméra - appliquer l'étalonnage
Cependant, je ne sais pas comment l'appliquer ensuite en utilisant la fonction undistort
, je crois comprendre que cela doit être appliqué à chaque image lorsqu'elle est capturée?
void undistort(InputArray src, OutputArray dst, InputArray cameraMatrix, InputArray distCoeffs, InputArray newCameraMatrix=noArray())
Je ne parviens pas à identifier chacun de ces paramètres, ci-dessous est ma compréhension actuelle.
undistorted(currentFrame, resultsWindow, calibrationFile, notSure, notSure);
Est-ce que la fonction appelée ci-dessous:
if(captureOpen == false){
img_scene = cvCaptureFromFile(videoFeed);
}
while(1) {
image = cvQueryFrame(img_scene);
undistort();
cochez cette réponse http://stackoverflow.com/questions/19897414/understanding-opencvs-undistort-function – ikaro