Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to 'mirror' live webcam video when using cv2?

Tags:

python

cv2

I want to have two different outputs of webcam videos, one being the normal webcam footage and the other to be the "mirrored" version of it. Is that possible with cv2?

import time, cv2


video=cv2.VideoCapture(0)
a=0
while True:
    a=a+1
    check, frame= video.read()

    gray=cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    cv2.imshow("Capturing",gray)

    key=cv2.waitKey(1)

    if key==ord('q'):
        break
print(a)

video.release()
cv2.destroyAllWindows
like image 595
Inzer Lee Avatar asked Jun 06 '19 09:06

Inzer Lee


People also ask

How do you mirror a camera in Python?

As usual, we will start our code by importing the cv2 module. Then we will load the image by calling the imread function of the cv2 module. As input, we will pass the file system path to the image we want to use. Then we will start flipping the images by calling the flip function from the cv2 module.

Which CV object is used to capture video from webcam?

To capture a video, you need to create a VideoCapture object.


2 Answers

In short, Yes it is possible using cv2. I have made some modification in your code to make it happen.

# Loading modules
import cv2
import numpy as np     # Numpy module will be used for horizontal stacking of two frames

video=cv2.VideoCapture(0)
a=0
while True:
    a=a+1
    check, frame= video.read()

    # Converting the input frame to grayscale
    gray=cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)   

    # Fliping the image as said in question
    gray_flip = cv2.flip(gray,1)

    # Combining the two different image frames in one window
    combined_window = np.hstack([gray,gray_flip])

    # Displaying the single window
    cv2.imshow("Combined videos ",combined_window)
    key=cv2.waitKey(1)

    if key==ord('q'):
        break
print(a)

video.release()
cv2.destroyAllWindows

Hope you get what you were looking for :)

like image 130
0xPrateek Avatar answered Sep 21 '22 16:09

0xPrateek


to get the mirror image:

flip_img = cv2.flip(img,1)
like image 32
M2Kishore Avatar answered Sep 20 '22 16:09

M2Kishore