2015-01-10 25 views
20

Khi chạy các ví dụ từ các hướng dẫn python xử lý video OpenCV, tất cả chúng đều xuất hiện trong một cửa sổ chuyên dụng. Tôi biết rằng các máy tính xách tay IPython có thể hiển thị video từ đĩa và YouTube, vì vậy tôi tự hỏi nếu có một cách để trực tiếp phát lại video OpenCV vào trình duyệt Notebook và có nó chơi trong tế bào đầu ra thay vì một cửa sổ riêng biệt (tốt nhất là không lưu nó vào đĩa rồi phát từ đó).Có thể hiển thị video OpenCV bên trong Máy tính xách tay IPython/JuPyter không?

Dưới đây là mã từ hướng dẫn OpenCV.

import cv2 

cap = cv2.VideoCapture('/path/to/video') 

while(True): 
    # Capture frame-by-frame 
    ret, frame = cap.read() 

    # Our operations on the frame come here 
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) 

    # Display the resulting frame 
    cv2.imshow('frame',gray) 
    if cv2.waitKey(1) & 0xFF == ord('q'): 
     break 

# When everything done, release the capture 
cap.release() 
cv2.destroyAllWindows() 
+0

Tôi cũng đang tìm kiếm điều này và không tìm thấy bất kỳ giải pháp nào được nêu ra ... Tôi đoán nó không thể như hạt nhân vẫn hoạt động miễn là cửa sổ tồn tại. Vì vậy, nếu cửa sổ nằm trong sổ làm việc thì chúng tôi không thể đóng nó, có nghĩa là ô hiện tại sẽ chạy mã của nó, v.v ... –

+3

kiểm tra điều này: https: //github.com/bikz05/ipython-notebooks/blob /master/computer-vision/displaying-video-in-ipython-notebook.ipynb –

+0

Liên kết được cung cấp bởi @EzerK có thể được coi là giải pháp –

Trả lời

2

Các dữ liệu video được mã hóa (nếu trong một định dạng trình duyệt có thể giải mã, ví dụ. H264-mã hóa trong container mp4 ISO) có thể được hiển thị bằng một HTML <video> thẻ và IPython.core.display.HTML(), điều này sẽ cung cấp hiệu suất phát lại tiêu chuẩn.

Các <video> có thể là một liên kết, hoặc đã nhúng dữ liệu base64'ed (sau này là gì matplotlib.animation không, ví dụ), và dữ liệu của nó có thể đương nhiên được tạo ra trong máy tính xách tay của bạn, sử dụng OpenCV (ví dụ. VideoWriter).

Các vấn đề liên quan