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 : de gbouyjou
