Calibration de caméra et reconstruction 3D

De Wiki du LAMA (UMR 5127)
Révision datée du 21 avril 2024 à 17:22 par Ncuneo (discussion | contributions) (Page créée avec « <h1 style="font-family:Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif">Calibration de caméra et reconstruction 3D</h1> <br> Noah CUNEO Tuteur : Stéphane BREUILS === Introduction === Nous allons dans ce compte rendu, voir et comprendre ce qu’est la vision par ordinateur. Plus particulièrement comment à partir d’une caméra nous pouvons traiter l’information d’une image. Dans le but d’obtenir divers résultats tel que la création d’u... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

Calibration de caméra et reconstruction 3D


Noah CUNEO

Tuteur : Stéphane BREUILS

Introduction

Nous allons dans ce compte rendu, voir et comprendre ce qu’est la vision par ordinateur.

Plus particulièrement comment à partir d’une caméra nous pouvons traiter l’information d’une image.

Dans le but d’obtenir divers résultats tel que la création d’un panorama ou bien la reconstruction 3D d’un objet à partir de photos.

Pour cela, nous allons nous aider de la bibliothèque OpenCV.

Qui est une bibliothèque conçue spécifiquement pour la vision par ordinateur et le traitement d’images.

Sommaire

I. Présentation brève d’OpenCV

II. Calibration d’une caméra

  1. Paramètre d’une caméra
  2. Calibrage de la caméra

III. Analyse et traitement d’une image

  1. Matrice de projection
  2. Trouver des descripteurs (SIFT)
  3. Homographie et Matrice d’homographie (Panorama)

IV. Reconstruction 3D

  1. Matrice fondamentale
  2. Incomplet

Présentation d'OpenCV

OpenCV est donc, comme dit dans l’introduction, une librairie Python axée sur la vision par ordinateur.
En effet, elle propose une grande variété de fonctions utiles au traitement d’images. Comme par exemple :

sift = cv.SIFT_create()
kp = sift.detect(gray,None)

Qui permet de détecter des points clés sur une image.

On également par exemple :

M, mask = cv.findHomography(src_pts, dst_pts, cv.RANSAC,5.0)

Qui permet d’estimer une matrice d’homographie.

Mais nous verrons l’utilité de ces fonctions plus en détails ultérieurement.

OpenCV permet également, à l’instar de Tkinter ou Pygame, de générer une interface graphique.

Elle est cependant très limitée puisqu’elle à été créée seulement à l’intention d’afficher des images.

Voici un exemple de comment on affiche une image sur OpenCV :

image = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE)
cv2.imshow('Image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

Ce code va par exemple, afficher l’image « image.jpg » en nuance de gris de cette forme :