Documentos de Académico
Documentos de Profesional
Documentos de Cultura
programarfacil.com
1 de 17 17/10/2020 20:26
Detección de movimiento con OpenCV y Python about:reader?url=https://programarfacil.com/blog/vision-artificial/dete...
detección de movimiento.
Substracción de fondo
2 de 17 17/10/2020 20:26
Detección de movimiento con OpenCV y Python about:reader?url=https://programarfacil.com/blog/vision-artificial/dete...
Ahora veremos cuales son las fases que debemos seguir para
crear un algoritmo que nos permita la detección de movimiento con
OpenCV. El proceso realizará varias tareas.
3 de 17 17/10/2020 20:26
Detección de movimiento con OpenCV y Python about:reader?url=https://programarfacil.com/blog/vision-artificial/dete...
plano.
# Suavizado de la imagen
4 de 17 17/10/2020 20:26
Detección de movimiento con OpenCV y Python about:reader?url=https://programarfacil.com/blog/vision-artificial/dete...
# Resta absoluta
Aplicación de umbral
5 de 17 17/10/2020 20:26
Detección de movimiento con OpenCV y Python about:reader?url=https://programarfacil.com/blog/vision-artificial/dete...
Código
2 import numpy as np
3 import cv2
4 import time
5 # Cargamos el vídeo
6 de 17 17/10/2020 20:26
Detección de movimiento con OpenCV y Python about:reader?url=https://programarfacil.com/blog/vision-artificial/dete...
6 camara = cv2.VideoCapture("detector-movimiento-opencv.mp4")
9 fondo = None
11 while True:
12 # Obtenemos el frame
15 if not grabbed:
16 break
23 if fondo is None:
24 fondo = gris
25 continue
28 # Aplicamos un umbral
33 contornosimg = umbral.copy()
7 de 17 17/10/2020 20:26
Detección de movimiento con OpenCV y Python about:reader?url=https://programarfacil.com/blog/vision-artificial/dete...
36 cv2.findContours(contornosimg,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE
38 for c in contornos:
41 continue
43 contorno
44 (x, y, w, h) = cv2.boundingRect(c)
48 cv2.imshow("Camara", frame)
49 cv2.imshow("Umbral", umbral)
50 cv2.imshow("Resta", resta)
51 cv2.imshow("Contorno", contornosimg)
55 time.sleep(0.015)
57 if key == ord("s"):
58 break
60 camara.release()
61 cv2.destroyAllWindows()
62
63
64
65
8 de 17 17/10/2020 20:26
Detección de movimiento con OpenCV y Python about:reader?url=https://programarfacil.com/blog/vision-artificial/dete...
66
67
68
69
70
71
72
73
74
75
76
77
78
BackgroundSubtractorMOG.
BackgroundSubtractorMOG2.
BackgroundSubtractorKNN
BackgroundSubtractorMOG
9 de 17 17/10/2020 20:26
Detección de movimiento con OpenCV y Python about:reader?url=https://programarfacil.com/blog/vision-artificial/dete...
cv2.bgsegm.createBackgroundSubtractorMOG(history=200,
nmixtures=5, backgroundRatio=0.7, noiseSigma=0)
Donde:
1 # Importación de librerías
2 import numpy as np
3 import cv2
4 # Capturamos el vídeo
5 cap = cv2.VideoCapture('detector-movimiento-opencv.mp4')
6 # Llamada al método
8 backgroundRatio=0.7, noiseSigma=0)
10 cv2.ocl.setUseOpenCL(False)
11 while(1):
15 if not ret:
16 break
17 # Aplicamos el algoritmo
18 fgmask = fgbg.apply(frame)
10 de 17 17/10/2020 20:26
Detección de movimiento con OpenCV y Python about:reader?url=https://programarfacil.com/blog/vision-artificial/dete...
20 contornosimg = fgmask.copy()
23 cv2.findContours(contornosimg,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE
25 for c in contornos:
28 continue
45
46
47
48
49
11 de 17 17/10/2020 20:26
Detección de movimiento con OpenCV y Python about:reader?url=https://programarfacil.com/blog/vision-artificial/dete...
50
51
52
53
54
BackgroundSubtractorMOG2
cv2.createBackgroundSubtractorMOG2(history=500,
varThreshold=50, detectShadows=False)
Donde:
1 # Importación de librerías
2 import numpy as np
3 import cv2
4 # Capturamos el vídeo
5 cap = cv2.VideoCapture('detector-movimiento-opencv.mp4')
6 # Llamada al método
12 de 17 17/10/2020 20:26
Detección de movimiento con OpenCV y Python about:reader?url=https://programarfacil.com/blog/vision-artificial/dete...
8 detectShadows=False)
10 cv2.ocl.setUseOpenCL(False)
11 while(1):
15 if not ret:
16 break
17 # Aplicamos el algoritmo
18 fgmask = fgbg.apply(frame)
20 contornosimg = fgmask.copy()
13 de 17 17/10/2020 20:26
Detección de movimiento con OpenCV y Python about:reader?url=https://programarfacil.com/blog/vision-artificial/dete...
39 if k == ord("s"):
40 break
42 cap.release()
43 cv2.destroyAllWindows()
44
45
46
47
48
49
50
51
52
53
54
BackgroundSubtractorKNN
cv2.createBackgroundSubtractorKNN(history=500,
dist2Threshold=400, detectShadows=False)
Donde:
14 de 17 17/10/2020 20:26
Detección de movimiento con OpenCV y Python about:reader?url=https://programarfacil.com/blog/vision-artificial/dete...
1 # Importación de librerías
2 import numpy as np
3 import cv2
4 # Capturamos el vídeo
5 cap = cv2.VideoCapture('detector-movimiento-opencv.mp4')
6 # Llamada al método
8 detectShadows=False)
10 cv2.ocl.setUseOpenCL(False)
11 while(1):
15 if not ret:
16 break
17 # Aplicamos el algoritmo
18 fgmask = fgbg.apply(frame)
20 contornosimg = fgmask.copy()
15 de 17 17/10/2020 20:26
Detección de movimiento con OpenCV y Python about:reader?url=https://programarfacil.com/blog/vision-artificial/dete...
24 for c in contornos:
27 continue
29 contorno
30 (x, y, w, h) = cv2.boundingRect(c)
34 cv2.imshow('Camara',frame)
35 cv2.imshow('Umbral',fgmask)
36 cv2.imshow('Contornos',contornosimg)
39 if k == ord("s"):
40 break
42 cap.release()
43 cv2.destroyAllWindows()
44
45
46
47
48
49
50
51
52
53
16 de 17 17/10/2020 20:26
Detección de movimiento con OpenCV y Python about:reader?url=https://programarfacil.com/blog/vision-artificial/dete...
54
Conclusión
17 de 17 17/10/2020 20:26