如何使用opencv在画布上播放avi视频

时间:2014-05-15 06:48:24

标签: python opencv canvas

我可以使用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

我还想在播放时拍摄截图。我已经在画布上有一个截图功能。这就是我想在画布上播放视频的原因

0 个答案:

没有答案