Ersetzen Sie Green Screen mit OpenCV-Python
Voraussetzungen: OpenCV Python Tutorial
OpenCV (Open Source Computer Vision) ist eine Computer Vision-Bibliothek, die verschiedene Funktionen zum Ausführen von Vorgängen für Bilder oder Videos enthält. Diese Bibliothek ist plattformübergreifend, dh sie ist in mehreren Programmiersprachen wie Python, C ++ usw. verfügbar.
Das Entfernen von Green Screen wird in der VFX-Branche zum Ändern der Szenen verwendet. Hier werden wir OpenCV - Python verwenden , um dasselbe zu tun.
Ansatz
- Importieren Sie alle erforderlichen Bibliotheken
- Laden Sie die Bilder oder Videos
- Ändern Sie die Größe der Bilder und Videos auf die gleiche Größe
- Laden Sie die oberen und unteren BGR-Werte der grünen Farbe
- Wenden Sie die Maske an und verwenden Sie dann bitwise_and
- Subtrahieren Sie bitwise_and vom ursprünglichen Greenscreen-Bild
- Überprüfen Sie nach der Subtraktion den Matrixwert 0 und ersetzen Sie ihn durch das zweite Bild
- Sie erhalten die gewünschten Ergebnisse.
Unten ist die Implementierung.
import
cv2
import
numpy as np
video
=
cv2.VideoCapture(
"green.mp4"
)
image
=
cv2.imread(
"bg.jpeg"
)
while
True
:
ret, frame
=
video.read()
frame
=
cv2.resize(frame, (
640
,
480
))
image
=
cv2.resize(image, (
640
,
480
))
u_green
=
np.array([
104
,
153
,
70
])
l_green
=
np.array([
30
,
30
,
0
])
mask
=
cv2.inRange(frame, l_green, u_green)
res
=
cv2.bitwise_and(frame, frame, mask
=
mask)
f
=
frame
-
res
f
=
np.where(f
=
=
0
, image, f)
cv2.imshow(
"video"
, frame)
cv2.imshow(
"mask"
, f)
if
cv2.waitKey(
25
)
=
=
27
:
break
video.release()
cv2.destroyAllWindows()