TP2 ATI
A1
TP1 ATI2 : Traitement de la vidéo en temps réel
Ce TP avait pour but de nous apprendre à effectuer des traitements en temps réel. Pour ce faire nous utilisons OpenCV et la Kinect/WebCam.
Exercice 1 Vision infrarouge
Ci-dessous l’implémentation de la vision infrarouge en utilisant la Luminance.
// Conversion RGB en YUV cvtColor(img,img, CV_RGB2YUV);
// Création de l'image OpenCV for(int i=1; i<480-1; ++i) if ( (i % 2) == 0 ) for(int j=0; j<640; ++j) { unsigned char y = *(lockedRect.pBits+(i-1)*lockedRect.Pitch+j*4); img.at<Vec3b>(i,j) = Vec3b(y,0,0);
}
else for(int j = 0 ; j < 640 ; ++j) { unsigned char y = *(lockedRect.pBits+(i-1)*lockedRect.Pitch+j*4); img.at<Vec3b>(i,j) = Vec3b(y*(2.0/3.0),0,0);
}
Version YUV
Version BGR lors des portes ouvertes
Le principe est de ne prendre que la luminance (en YUV) ou la composante rouge (en RGB) de l'image d'entrée, ne considérer qu'une ligne sur deux, la deuxième ligne recevant une copie de la première, une ligne traitée sur deux étant multipliée par 2/3.
Code en Annexe
PERRE Morgan
A1
Exercice 2 La boucle fermée
Image de la boucle fermée durant le traitement. Angle de 7° entre chaque image.
Pour cet exercice on prend le flux vidéo et on lui applique une rotation et un changement d’échelle au court du temps. A la fin du traitement on a l’image l’impression d’avoir des images qui se répète à l’infini. J’ai choisit un angle de 7° entre chaque image et un facteur de réduction de 0.95, en effectuant plusieurs tests.
Exercice 3 Estimation de mouvement
Estimer le mouvement consiste à détecter le déplacement des points dans l’image. Pour cela il existe diverses solutions, j’utilise Lucas-Kanade.
Elle consiste a d’évaluer en chaque pixel son déplacement. Cela consiste à se concentrer sur un pixel de la première image de la vidéo, il faut ensuite regarder le voisinage de ce pixel sur la seconde image. Si l’on retrouve exactement ce pixel dans le voisinage, il suffit de mesurer la distance entre la