我是OpenCV的初學者。我想對正在上傳到服務器的視頻幀進行一些圖像處理。我只想讀取可用的幀並將它們寫入目錄中。等待視頻的其他部分上傳並將幀寫入目錄。我應該等待每一幀完全上傳,然後將其寫入文件。如何在視頻流中使用Opencv逐幀處理視頻圖像python
你能告訴我如何用OpenCV(Python)做到這一點嗎?
編輯1: 我編寫了這個代碼,用於捕獲文件中的視頻,而新的數據被附加在文件的末尾。換句話說,out.mp4
文件不是一個完整的視頻,另一個程序正在寫入新的幀。我要做的是,等待其他程序寫入新的幀,然後讀取並顯示它們。
這裏是我的代碼:
import cv2
cap = cv2.VideoCapture("./out.mp4")
while True:
if cap.grab():
flag, frame = cap.retrieve()
if not flag:
continue
else:
cv2.imshow('video', frame)
if cv2.waitKey(10) == 27:
break
所以問題是cap.grab()
來電!當沒有框架時,它將返回False
!即使我等了很長時間,它也不會捕獲幀。
請添加更詳細的描述。上傳過程中或之後的'幀上的一些圖像處理'? '可用框架'在哪裏以及它們應該如何提供? '等待視頻的其他部分',所以只是追加?... –
@RobertCaspary謝謝你的評論。 '對幀進行一些圖像處理':假設我想將幀寫入目錄中的文件。 '可用幀':假設視頻有100幀,但只有40幀被上傳,所以可用幀是前40幀。到目前爲止,我已將它們保存到特定目錄中的文件中。 '等待視頻的其他部分':等待第41幀上傳,然後將其保存到另一個文件,然後保存到第42幀,依此類推。 是否清楚? – Mehran