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édenteProchaine révisionLes deux révisions suivantes |
diy:projets:motiondetection [2018/05/28 08:28] – [Programme] ecausse | diy:projets:motiondetection [2018/05/28 08:37] – [Seuillage] ecausse |
---|
| |
==== Flou Gaussien ==== | ==== Flou Gaussien ==== |
On récupère l'image en cour qu'on transforme en niveau de gris puis on lui applique un flou gaussien pour atténuer le bruit, sans se flou on repérerez par la suite tout les bruits comme étant du mouvement. Appliquer un flou gaussien est donc indispensable pour la suite du programme. | On récupère l'image en cour qu'on transforme en niveau de gris puis on lui applique un flou gaussien pour atténuer le bruit, sans ce flou on repérerait par la suite tout les bruits comme étant du mouvement. Appliquer un flou gaussien est donc indispensable pour la suite du programme. |
| |
Cela ce fait grace au code suivant et on obtient l'image ci dessous: | Cela ce fait grâce au code suivant et on obtient l'image ci dessous: |
<code python> | <code python> |
gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY) | gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY) |
</code> | </code> |
==== Seuillage ==== | ==== Seuillage ==== |
Après avoir obtenu l'image avec le flou gaussien, on fait la différence absolue entre l'image en cours et l'image précédente, cela nous permet de voir les pixels uniquement en mouvement. Ensuite on fait un seuillage binaire sur cette nouvelle image et tout les pixels qui on un certain niveau de gris sont placé à 255. Ici on choisi 7 pour pouvoir repérer même les petit mouvement. Puis on dilate cette image pour avoir bien tout l'objet si possible en mouvement (des fois c'est un échec...); et à l'aide du code suivant on obtient l'image ci dessous: | Après avoir obtenu l'image avec le flou gaussien, on fait la différence absolue entre l'image en cours et l'image précédente, cela nous permets de voir les pixels uniquement en mouvement. Ensuite on fait un seuillage binaire sur cette nouvelle image et tout les pixels qui on un certain niveau de gris sont placés à 255. Ici on choisi 7 pour pouvoir repérer même les petits mouvements. Puis on dilate cette image pour avoir bien tout l'objet si possible en mouvement (des fois c'est un échec...); et à l'aide du code suivant on obtient l'image ci dessous: |
<code python> | <code python> |
frameDelta = cv2.absdiff(prevFrame,gray) | frameDelta = cv2.absdiff(prevFrame,gray) |