问题描述
我想一个接一个地显示多个 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 (将#修改为@)