在 OpenCV 中写入视频的几帧

问题描述

我有一个将近 60 秒的视频,我想在不同的帧中应用不同的视频处理技术。 我正在尝试选择不同的帧,但出现语法错误。这是我目前所写的。

选择不同帧的函数

def between(cap,lower: int,upper: int):
    return lower <= int(cap.get(cv.CAP_PROP_POS_FRAMES)) < upper

在此之后,我想选择不同的帧并应用不同的技术。例如,在下面的前 90 帧中,我转为灰度,从第 91 帧到第 150 帧,我想写一些文本,但是在第二个选择的帧中,我遇到了语法错误

 while cap.isOpened():
    ret,frame = cap.read()
       if not ret:
       print("Can't receive frame (stream end?). Exiting ...")
       break
 if between(cap,90):
           frame = cv.cvtColor(frame,cv.COLOR_BGR2GRAY)
           frame = cv.cvtColor(frame,cv.COLOR_GRAY2BGR)  
        
 if between(cap,90,150)           
 # Our operations on the frame come here
           font = cv.FONT_HERShey_SIMPLEX 
           cv.putText(frame,'TEXT ON VIDEO',(50,50),font,1,(0,255,255),2,cv.LINE_4)
              pass
    # write the flipped frame
 out.write(frame)
 cv.imshow('frame',frame)
 if cv.waitKey(1) == ord('q'):
     break
 cap.release()
 out.release()
 cv.destroyAllWindows()

关于如何构建代码以连续选择下一帧的任何想法。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)