π¬ ΠΠ°ΠΊ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π²ΠΈΠ΄Π΅ΠΎ Π½Π° ΠΊΠ°Π΄ΡΡ Π² Python: ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΉ Π³ΠΈΠ΄ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ
ΠΠ°ΠΊ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π²ΠΈΠ΄Π΅ΠΎ Π½Π° ΠΊΠ°Π΄ΡΡ Π² Python?
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ OpenCV Π΄Π»Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ Π²ΠΈΠ΄Π΅ΠΎ Π½Π° ΠΊΠ°Π΄ΡΡ Π² Python. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°:
import cv2
# ΠΡΠΊΡΡΠ²Π°Π΅ΠΌ Π²ΠΈΠ΄Π΅ΠΎ ΡΠ°ΠΉΠ»
video = cv2.VideoCapture('video.mp4')
# Π§ΠΈΡΠ°Π΅ΠΌ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΊΠ°Π΄Ρ
success, image = video.read()
# ΠΠΎΠΊΠ° Π²ΠΈΠ΄Π΅ΠΎ Π½Π΅ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΠΎΡΡ
while success:
# ΠΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΊΠ°Π΄Ρ
cv2.imshow('Frame', image)
# ΠΠ΄Π΅ΠΌ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡΠΈ 'q' Π΄Π»Ρ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ
if cv2.waitKey(1) == ord('q'):
break
# Π§ΠΈΡΠ°Π΅ΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠ°Π΄Ρ
success, image = video.read()
# ΠΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅ΠΌ ΡΠ΅ΡΡΡΡΡ ΠΈ Π·Π°ΠΊΡΡΠ²Π°Π΅ΠΌ ΠΎΠΊΠ½Π°
video.release()
cv2.destroyAllWindows()
Π ΡΡΠΎΠΌ ΠΊΠΎΠ΄Π΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ cv2.VideoCapture('video.mp4') Π΄Π»Ρ ΠΎΡΠΊΡΡΡΠΈΡ Π²ΠΈΠ΄Π΅ΠΎ ΡΠ°ΠΉΠ»Π°. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΡΠΈΡΠ°Π΅ΠΌ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠ°Π΄Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ video.read(). Π§ΡΠΎΠ±Ρ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ Π½Π° ΠΊΠ°Π΄ΡΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΆΠ°ΡΡ ΠΊΠ»Π°Π²ΠΈΡΡ 'q'. ΠΠ΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡΡ ΡΠ΅ΡΡΡΡΡ ΠΈ Π·Π°ΠΊΡΡΡΡ ΠΎΠΊΠ½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ video.release() ΠΈ cv2.destroyAllWindows().
ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π²ΠΈΠ΄Π΅ΠΎ Π½Π° ΠΊΠ°Π΄ΡΡ Π² Python!
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π²ΠΈΠ΄Π΅ΠΎ Π½Π° ΠΊΠ°Π΄ΡΡ Π² Python
Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π²ΠΈΠ΄Π΅ΠΎ Π½Π° ΠΊΠ°Π΄ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π°ΠΆΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π·ΡΠ΅Π½ΠΈΡ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π²ΠΈΠ΄Π΅ΠΎ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Python Π΄Π»Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ Π²ΠΈΠ΄Π΅ΠΎ Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΊΠ°Π΄ΡΡ.
Π¨Π°Π³ 1: Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ OpenCV
ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π²ΠΈΠ΄Π΅ΠΎΡΠ°ΠΉΠ»Π°ΠΌΠΈ Π² Python ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ OpenCV. ΠΠ»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π΅Π΅, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅:
pip install opencv-python
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π½ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, ΡΠ°ΠΊ ΡΡΠΎ Π±ΡΠ΄ΡΡΠ΅ ΡΠ΅ΡΠΏΠ΅Π»ΠΈΠ²Ρ.
Π¨Π°Π³ 2: ΠΠ°Π³ΡΡΠ·ΠΊΠ° Π²ΠΈΠ΄Π΅ΠΎΡΠ°ΠΉΠ»Π°
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΌΡ Π½Π°ΡΠ½Π΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π²ΠΈΠ΄Π΅ΠΎ Π½Π° ΠΊΠ°Π΄ΡΡ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Π²ΠΈΠ΄Π΅ΠΎΡΠ°ΠΉΠ». Π Python ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Π²ΠΈΠ΄Π΅ΠΎΡΠ°ΠΉΠ» Ρ ΠΏΠΎΠΌΠΎΡΡΡ OpenCV ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄:
import cv2
# ΠΠ°Π³ΡΡΠ·ΠΊΠ° Π²ΠΈΠ΄Π΅ΠΎΡΠ°ΠΉΠ»Π°
video = cv2.VideoCapture('ΠΏΡΡΡ_ΠΊ_Π²ΠΈΠ΄Π΅ΠΎΡΠ°ΠΉΠ»Ρ')
Π ΠΊΠΎΠ΄Π΅ Π²ΡΡΠ΅, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ 'ΠΏΡΡΡ_ΠΊ_Π²ΠΈΠ΄Π΅ΠΎΡΠ°ΠΉΠ»Ρ' Π½Π° ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΡΡΡ ΠΊ Π²Π°ΡΠ΅ΠΌΡ Π²ΠΈΠ΄Π΅ΠΎΡΠ°ΠΉΠ»Ρ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅.
Π¨Π°Π³ 3: Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π²ΠΈΠ΄Π΅ΠΎ Π½Π° ΠΊΠ°Π΄ΡΡ
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Ρ Π½Π°Ρ Π΅ΡΡΡ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠΉ Π²ΠΈΠ΄Π΅ΠΎΡΠ°ΠΉΠ», Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ°Π·Π΄Π΅Π»ΠΈΠΌ Π΅Π³ΠΎ Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΊΠ°Π΄ΡΡ. ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ read()
ΠΎΠ±ΡΠ΅ΠΊΡΠ° video
, ΡΡΠΎΠ±Ρ ΡΠΈΡΠ°ΡΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΊΠ°Π΄ΡΡ Π·Π° ΡΠ°Π·:
# ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΊΠ°Π΄ΡΠ°
success, frame = video.read()
# ΠΡΠ²ΠΎΠ΄ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ°Π΄ΡΠ° Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
while success:
# ΠΠ°Ρ ΠΊΠΎΠ΄ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ°Π΄ΡΠ°
# ...
# ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΊΠ°Π΄ΡΠ°
success, frame = video.read()
Π ΠΊΠΎΠ΄Π΅ Π²ΡΡΠ΅, ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠΈΠΊΠ» while
Π΄Π»Ρ ΠΏΡΠΎΡ
ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠ°Π΄Ρ Π² Π²ΠΈΠ΄Π΅ΠΎ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΊΠ°Π΄Ρ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ frame
, Π³Π΄Π΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ.
Π¨Π°Π³ 4: Π‘ΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ ΡΠ°Π·Π΄Π΅Π»ΠΈΠ»ΠΈ Π²ΠΈΠ΄Π΅ΠΎ Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΊΠ°Π΄ΡΡ ΠΈ ΠΏΡΠΎΠΈΠ·Π²Π΅Π»ΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠ°Π΄Ρ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π΄ΠΈΡΠΊΠ΅. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ imwrite()
ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ OpenCV. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°:
# ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΊΠ°Π΄ΡΠ°
success, frame = video.read()
# Π‘ΡΠ΅ΡΡΠΈΠΊ Π΄Π»Ρ ΠΈΠΌΠ΅Π½ ΡΠ°ΠΉΠ»ΠΎΠ²
count = 0
# Π‘ΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ°Π΄ΡΠ° Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ»
while success:
# ΠΠ°Ρ ΠΊΠΎΠ΄ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ°Π΄ΡΠ°
# ...
# Π‘ΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΊΠ°Π΄ΡΠ° Π² ΡΠ°ΠΉΠ»
cv2.imwrite(f"ΡΡΠ΅ΠΉΠΌ_{count}.jpg", frame)
# ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΊΠ°Π΄ΡΠ°
success, frame = video.read()
# Π£Π²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΡΠ΅ΡΡΠΈΠΊΠ°
count += 1
Π ΠΊΠΎΠ΄Π΅ Π²ΡΡΠ΅, ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠΈΠΊΠ» Π΄Π»Ρ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ°Π΄ΡΠ° Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ». ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ count
Π΄Π»Ρ Π½ΡΠΌΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠΈ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π’Π΅ΠΏΠ΅ΡΡ Ρ Π²Π°Ρ Π΅ΡΡΡ Π²ΡΠ΅, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π²ΠΈΠ΄Π΅ΠΎ Π½Π° ΠΊΠ°Π΄ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ OpenCV. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈ ΠΊΠ°Π΄ΡΡ Π΄Π»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π·ΡΠ΅Π½ΠΈΡ. ΠΠ΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π²Π°ΡΠ΅ΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π² ΡΠ°Π·Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΡΡΠΎΠ±Ρ Ρ Π²Π°Ρ Π±ΡΠ» Π΄ΠΎΡΡΡΠΏ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΠΊΠ°Π΄ΡΠ°ΠΌ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ.