diy:projets:cinematography_panning_and_tracking_actor
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
diy:projets:cinematography_panning_and_tracking_actor [2018/05/24 15:23] – gbouyjou | diy:projets:cinematography_panning_and_tracking_actor [2018/06/01 15:25] (Version actuelle) – [Petit cours d'optique (rappel géometrie)] gbouyjou | ||
---|---|---|---|
Ligne 69: | Ligne 69: | ||
+ | |||
+ | ---- | ||
===== Detection de ma personne ===== | ===== Detection de ma personne ===== | ||
+ | On aurrait pu utiliser la detection de mouvement décrit dans ce [[https:// | ||
+ | ce n'est pas le cas içi. | ||
+ | Mais on utilisera ceçi dans un prochain tuto, ... :-X | ||
+ | |||
+ | Le choix à été fait sur l' | ||
+ | |||
+ | En effet ca s' | ||
+ | l' | ||
+ | Voir ce [[https:// | ||
+ | |||
+ | On aurra pour faire ce tuto pas besoin d' | ||
+ | diverses partie du corps humain. | ||
+ | |||
+ | Vous avez tous les fichiers dans le repertoire / | ||
+ | |||
+ | Nous nous concentrerons sur le fichier haarcascade_frontalface_default.xml | ||
+ | pour suivre les visages. | ||
+ | |||
+ | Utilisons tous ceci pour voir ce que ça donne sur une image de foule prise sur google image. | ||
+ | |||
+ | Import basique opencv | ||
+ | <code python> | ||
+ | import numpy as np | ||
+ | import cv2 | ||
+ | </ | ||
+ | |||
+ | |||
+ | Chargement de la video et de cascade | ||
+ | <code python> | ||
+ | |||
+ | face_cascade = cv2.CascadeClassifier(' | ||
+ | # face_cascade = cv2.CascadeClassifier(' | ||
+ | |||
+ | cap = cv2.VideoCapture(0) | ||
+ | width =cap.get(cv2.CAP_PROP_FRAME_WIDTH) | ||
+ | height =cap.get(cv2.CAP_PROP_FRAME_HEIGHT) | ||
+ | </ | ||
+ | |||
+ | Pour chaque frame du stream, on detect les visages, on les entoures, et on dessines un point au centre de | ||
+ | chaque rectangle/ | ||
+ | On quite en appuyant sur q pour quit | ||
+ | <code python> | ||
+ | while(1): | ||
+ | |||
+ | ret, img = cap.read() | ||
+ | gray = cv2.cvtColor(img, | ||
+ | |||
+ | faces = face_cascade.detectMultiScale(gray, | ||
+ | print(faces) | ||
+ | continue | ||
+ | for (x, y, w, h) in faces: | ||
+ | cv2.rectangle(img, | ||
+ | middle =[cv2.KeyPoint(x +w /2, y +h /2, 1)] | ||
+ | img =cv2.drawKeypoints(img, | ||
+ | # roi_gray = gray[y:y+h, x:x+w] | ||
+ | # roi_color = img[y:y+h, x:x+w] | ||
+ | # eyes = eye_cascade.detectMultiScale(roi_gray) | ||
+ | # for (ex, | ||
+ | # | ||
+ | cv2.imshow(' | ||
+ | |||
+ | k = cv2.waitKey(30) & 0xff | ||
+ | if k == 27: | ||
+ | break | ||
+ | </ | ||
+ | |||
+ | |||
+ | Pour finir on enregistre la dernière image et on free les fenêtres. | ||
+ | <code python> | ||
+ | cv2.imwrite(" | ||
+ | # cv2.waitKey(0) | ||
+ | cv2.destroyAllWindows() | ||
+ | </ | ||
+ | |||
+ | On regarde ce que ça donne sur une image de foule | ||
+ | {{ : | ||
+ | |||
+ | |||
+ | Le résultat est pas mal, ca suffira, et j' | ||
+ | ===== Petit cours d' | ||
+ | Prenons l' | ||
+ | Je connais la taille de l' | ||
+ | Mais comment je sais de combien de degree j' | ||
+ | Pour cela faisons un petit rappel géometrique de collège | ||
+ | En attente ... | ||
diy/projets/cinematography_panning_and_tracking_actor.1527175390.txt.gz · Dernière modification : 2018/05/24 15:23 de gbouyjou