Tôi là người mới bắt đầu trong OpenCV. Tôi muốn thực hiện một số xử lý hình ảnh trên các khung hình của video đang được tải lên máy chủ của tôi. Tôi chỉ muốn đọc các khung hình có sẵn và viết chúng trong một thư mục. Và chờ một phần khác của video được tải lên và ghi các khung hình vào thư mục. Và tôi nên chờ cho mỗi khung hình được tải lên hoàn toàn rồi ghi nó vào một tập tin.Cách xử lý hình ảnh của video, khung theo khung hình trong phát video bằng cách sử dụng python Opencv
Bạn có thể cho tôi biết cách tôi có thể làm điều đó với OpenCV (Python) không?
Chỉnh sửa 1: Tôi đã viết mã này để quay video từ tệp, trong khi dữ liệu mới đang được thêm vào cuối tệp. Nói cách khác, tệp out.mp4
không phải là video hoàn chỉnh và một chương trình khác đang viết khung mới lên đó. Những gì tôi sẽ làm là, chờ đợi cho các chương trình khác để viết khung hình mới sau đó đọc chúng và hiển thị chúng.
Đây là mã của tôi:
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
Vì vậy, vấn đề là cap.grab()
gọi! khi không có khung, nó sẽ trả lại False
! Và nó sẽ không chụp khung nữa, ngay cả khi tôi chờ đợi một thời gian dài.
Vui lòng thêm mô tả chi tiết hơn. 'một số xử lý hình ảnh trên khung' trong khi tải lên hoặc sau? 'khung có sẵn' ở đâu và chúng có sẵn như thế nào? 'Đợi phần khác của video' chỉ cần thêm? ... –
@RobertCaspary cảm ơn bạn đã bình luận của bạn. 'một số xử lý hình ảnh trên khung hình': chỉ cần giả định rằng tôi muốn viết khung thành một tệp trong một thư mục. 'các khung có sẵn': giả sử rằng video có 100 khung hình, nhưng chỉ 40 khung hình được tải lên, vì vậy các khung có sẵn là 40 khung hình đầu tiên. Và cho đến nay, tôi đã lưu chúng vào các tập tin trong một thư mục cụ thể. 'Đợi phần khác của video': đợi khung hình thứ 41 được tải lên rồi lưu nó vào một tệp khác, sau đó là khung hình thứ 42, v.v. Có rõ không? – Mehran