実現したいこと
tkinterのcanvas上でopencvで読み込んだmp4ファイルを再生したいです。
しかし、エラーなどは一切ないのに、ウィンドウが表示されるだけで、動画は再生されません。というか、表示すらされません。画像をcanvas上で表示させることは別のプログラムでできたのですが、動画になるとできなくなります。opencv初心者なので、初歩的なところで詰まっているのかもしれませんが、どうか回答よろしくお願いいたします。下のソースコードは、tkinterで動画を再生しようとしたときのソースコードです。拙いものですが、参考にしていただければ幸いです。
フレームレートなどはいったん無視して、動画が再生されることだけを焦点に質問させていただきます。
該当するソースコード
python
1# -*- coding: utf-8 -*- 2 3 4import cv2 5import tkinter as tk 6from PIL import Image,ImageTk 7 8video1_path = "ここは自由に変えてください" 9 10 11cap1 = cv2.VideoCapture(video1_path) 12 13 14width = 600 15height = 400 16 17root = None 18canvas1 = None 19 20def start(): 21 global root,canvas1 22 root = tk.Tk() 23 root.geometry("800x600") 24 root.title("test002") 25 canvas1 = tk.Canvas(root,width = 600,height = 400, 26 bg = "white") 27 canvas1.place(x = 0,y = 0) 28 29 30 31def play1(): 32 global cap1 33 34 ret1, frame1 = cap1.read() 35 if not ret1: 36 37 return 38 39 40 frame1 = cv2.resize(frame1, (600, 400)) 41 42 image01 = cv2.cvtColor(frame1,cv2.COLOR_BGR2RGB) 43 44 image_pil01 = Image.fromarray(image01) 45 46 image_tk= ImageTk.PhotoImage(image_pil01,master=root) 47 48 canvas1.create_image(0,0,image=image_tk) 49 root.after(10,play1) 50 51 52start() 53play1() 54root.mainloop() 55
問題点
play1関数が下まで実行されていることは、printで確認できたが、canvasに動画が表示されない。
###エラー
特になし
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/23 22:58