понеділок, 26 квітня 2021 р.

Обробка відеофайлів

Відкриття відеофайлу
 
'''
якщо VIDEO_FILE_NAME='0' то зображення зчитується з відеокамери ноутбука
'''
cap = cv2.VideoCapture(VIDEO_FILE_NAME)
 
Запис масиву фреймів у відеофайл
 
def write_video(file_name, frames, width, height):
        writer = cv2.VideoWriter(file_name, 
        cv2.VideoWriter_fourcc(*'X264'), 
        30, 
        (int(width), int(height))
    )

    for frame in frames:
        writer.write(frame)
    else:
        writer.release() 
Перегляд відео
 
cap = cv2.VideoCapture('do.mp4')
if (cap.isOpened()== False):
     print("Помилка...")
while(cap.isOpened()):
    ret, frame = cap.read()
    ''' При потребі фрейм  обробляється '''
    if ret == True:
        cv2.imshow('Frame',frame)
        #для виходу натисніть q
        if cv2.waitKey(25) & 0xFF == ord('q'):
            break
    else: break
cap.release()
cv2.destroyAllWindows()
Перегляд відео в зворотньому порядку
 
cap = cv2.VideoCapture('do.mp4')
ret = True
frame_list = []
while(ret == True):
    ret,vid = cap.read()
    frame_list.append(vid)
frame_list.pop()
cap.release()
frame_list.reverse()
for frame in frame_list:
    cv2.imshow("Frame" , frame)
    if cv2.waitKey(25) & 0xFF == ord('q'):
            break
cap.release()
cv2.destroyAllWindows()
Маска з об'єктів переднього плану
 
cap = cv2.VideoCapture('do.mp4')
#fgbg = cv2.createBackgroundSubtractorKNN()
fgbg = cv2.createBackgroundSubtractorMOG2()
if (cap.isOpened()== False):
     print("Помилка...")
while(cap.isOpened()):
    ret,frame = cap.read()
    fgmask = fgbg.apply(frame)
    if ret == True:
        cv2.imshow('Frame',fgmask)
        #для виходу натисніть q
        if cv2.waitKey(25) & 0xFF == ord('q'):
            break
    else: break
cap.release()
cv2.destroyAllWindows()

Немає коментарів:

Дописати коментар