微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 ffpyplayer 和 Opencv 播放视频

如何解决使用 ffpyplayer 和 Opencv 播放视频

我想一个一个显示多个 mp4 视频文件,同时用用户控制的圆圈覆盖视频。阅读this后,我开始使用ffpyplayer's MediaPlayer播放音频获取视频帧,并通过cv2.imshow播放。

但是我得到的视频非常模糊,对于 cv.circle 我得到以下错误

> Overload resolution Failed: - img is not a numpy array,neither a scalar

Expected Ptr<cv::UMat> for argument 'img'

非常感谢有关如何解决这些问题的任何帮助。

def video():   
    output=open('out.txt','a')
    player = MediaPlayer('Isi_B1.mp4')
    val =''
    while (val!='eof'):
       frame,val= player.get_frame() # capture frame-by-frame audio
        if val =='eof':
            break
        if val!= 'eof' and frame is not None:
            img,t = frame
            w= img.get_size()[0]
            h=img.get_size()[1]
            arr=np.uint8(np.asarray(list(img.to_bytearray()[0])).reshape(w,h,3))
            key_pressed = cv.waitKey(1)
            if key_pressed == ord(' '): #pressing space bar ends the video
                out('video 1 is changed',output)
                break
            elif key_pressed == 2: #left key pressed changes circle to letter
                circle_is_left = True
                out('left',output)
            elif key_pressed == 3: # right key pressed changes circle to right
                circle_is_left = False
                out('Right ',output)
            circle(img,circle_is_left) #display the circle at all times
            cv.imshow('player',arr) #display resulting frame
   output.close()
   cv.destroyAllWindows()
   player.close_player()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。