我可以使用opencv播放视频,但现在我想在画布上设置它。但是当我抓住的帧是一个numpy ndarray数据时,我无法使用func。 image.resize()和create_image()。我可以将numpy ndarray数据转换为实例吗?或其他一些方法将视频放在画布上?
tkroot = Tk()
tkroot.geometry("500x500+400+100")
labelfont = ('courier', 20, 'bold')
widget = Canvas(tkroot, width=500, height=500,bg = 'white')
widget.pack(expand=YES, fill=BOTH)
widget.focus()
播放视频功能。如下:
video = cv2.VideoCapture(fileorid)
while(video.isOpened()):
ret,frame = video.read()
if ret == True:
img = frame.resize((500, 500), frame.ANTIALIAS)
im = ImageTk.PhotoImage(img)
widget.create_image(250,250,image = im)
#cv2.imshow('frame',frame)
c = cv2.waitKey(1)
if c == 32:
c = 0
while c!=32:
c = cv2.waitKey(1)
if c == 27 or ret == 0:
break
else:
break
我还想在播放时拍摄截图。我已经在画布上有一个截图功能。这就是我想在画布上播放视频的原因