I am working on a project related to object detection using Mask RCNN on google colab. I have a video uploaded to my colab. I want to display it as a video while processing it at the runtime using openCV. I want to do what cv2.VideoCapture('FILE_NAME') does on the local machine. Is there any way to do it?
Advertisement
Answer
Found I way to do it. But it is very slow.
from IPython.display import clear_output, Image
import base64
def arrayShow (imageArray):
    ret, png = cv2.imencode('.png', imageArray)
    encoded = base64.b64encode(png)
    return Image(data=encoded.decode('ascii'))
video_capture = cv2.VideoCapture(VIDEO_SOURCE)
while video_capture.isOpened():
    success, frame = video_capture.read()
    clear_output(wait=True)
    img = arrayShow(frame)
    display(img)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
The code does not play video exactly. It just displays the new frame and removes the old frame from output.