pyplotのメソッドを使ってフレームごとに動画を再生したい。
cv2のメソッドを使いながら色々試しているとcv2.imshow()が使えないという難題に直面しました。
色々試しましたが解決できそうにないので、pyplotのimshow()メソッドで代用することにしました。しかし、画像一枚だけを表示するのなら簡単にできますが、動画のフレームごとに止まることなく再生させるすべがわかりません。
もし詳しい方がいれば教えていただけると幸いです。
フレームごとに処理を加えたいのでそれが可能なコード方法を教えて頂きたいです。
試しに書いたコード(qを押さないと次のフレームに進んでくれない)
Python
1import cv2 as cv 2from matplotlib import pyplot as plt 3 4filepath = "Videos/CatVideo.mp4" 5 6# 動画の読み込み 7cap = cv.VideoCapture(filepath) 8 9# 動画終了まで繰り返し 10while(cap.isOpened()): 11 # フレームを取得 12 ret, frame = cap.read() 13 14 # フレームを表示 15 plt.imshow(frame) 16 plt.show() 17 #! cv.show()は使えないのでpyplotで代用 18 # cv.startWindowThread() 19 # cv.namedWindow("preview") 20 # cv.imshow("preview", frame) 21 22 # qキーを押さないと次のフレームに進んでくれない。 23 if cv.waitKey(1) & 0xFF == ord('q'): 24 break 25 26cap.release() 27cv.destroyAllWindows 28
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー