Сохранение видео в OpenCV с фильтрами - PullRequest
0 голосов
/ 06 марта 2020

Я пытаюсь сохранить видео, используя открытое резюме, идея состоит в том, чтобы чередовать видеокадры от цветного до серого в течение нескольких секунд. Когда я делаю сохранение, видео сохраняет только цветные рамки.

import cv2

def saving(cap):
    width=cap.get(cv2.CAP_PROP_FRAME_WIDTH)
    height=cap.get(cv2.CAP_PROP_FRAME_HEIGHT)
    fps= cap.get(cv2.CAP_PROP_FPS)
    fourcc=cv2.VideoWriter_fourcc(*'XVID')
    out=cv2.VideoWriter('Project11.mp4',fourcc,fps,(int(width),int(height)))
    return (out)


def first4seconds(video):
    c=saving(video)
    while(video.isOpened()):
        print(video.get(cv2.CAP_PROP_POS_MSEC))
        ret, frame = video.read()
        if ret==True:
            if cv2.waitKey(25) & 0xFF == ord('q'):
                    break
        else:
            break

    if(500<=int(video.get(cv2.CAP_PROP_POS_MSEC))<1000 or 2000<=int(video.get(cv2.CAP_PROP_POS_MSEC))<3000):
            gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
            c.write(gray)
            cv2.imshow('frame',gray)
    else:
        c.write(frame)
        cv2.imshow('frame',frame)


video.release()
cv2.destroyAllWindows()



cap = cv2.VideoCapture('test.mp4')
first4seconds(cap)

1 Ответ

0 голосов
/ 06 марта 2020
if(500<=int(video.get(cv2.CAP_PROP_POS_MSEC))<1000 or 2000<=int(video.get(cv2.CAP_PROP_POS_MSEC))<3000):
            gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
            **gray_2=cv2.cvtColor(gray,cv2.COLOR_GRAY2BGR)** 
            **cv2.imshow('frame',gray_2)**
            **c.write(gray_2)**
else:
    c.write(frame)
    cv2.imshow('frame',frame)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...