Skip to main content

Read opencv cameras concurrently

Project description

concurrent-videocapture

Opencv VideoCapture that runs concurrently in a thread for faster processing

Installation

You can install concurrent_videocapture from pip using

pip install concurrent_videocapture

or using

pip install git+https://github.com/charlielito/concurrent-videocapture

Usage

It follows the same api than cv2.VideoCapture, so the change in code is minimal. The following example just opens the Camera 0 and shows the image in a cv2 window while simulating a heavy image processing function with time.sleep.

import cv2
import time
from concurrent_videocapture import ConcurrentVideoCapture
# Use it a the standard cv2.VideoCapture Class
cap = ConcurrentVideoCapture(0)
while True:
    init = time.time()
    grabbed, frame = cap.read()

    # Simulate heavy image processing function
    time.sleep(0.3)
    if not grabbed:
        break
    cv2.imshow("video", frame)
    key = cv2.waitKey(1)
    if key == 27:  # ESC
        break
    fps = 1/(time.time() - init)
    print('Fps: {}'.format(fps))
cap.release()

Additional parameters

Sometimes it is useful to perform some preprocessing to the image in the thread where the camera is read. For that we can use in the constructor the parameter transform_fn, which is a function that is applied to each frame. The flag return_rgb is for converting each frame to RGB since opencv by default returns the frames in GBR format. The next example will flip horizontally the image and return it as RGB:

import cv2
from concurrent_videocapture import ConcurrentVideoCapture

cap = ConcurrentVideoCapture(0, transform_fn=lambda image:cv2.flip(image, 1), return_rgb=True)
while True:
    grabbed, frame = cap.read()

    if not grabbed:
        break
    cv2.imshow("video", frame)
    key = cv2.waitKey(1)
    if key == 27:  # ESC
        break
cap.release()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

concurrent_videocapture-0.0.2.tar.gz (3.5 kB view details)

Uploaded Source

File details

Details for the file concurrent_videocapture-0.0.2.tar.gz.

File metadata

  • Download URL: concurrent_videocapture-0.0.2.tar.gz
  • Upload date:
  • Size: 3.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3.post20200330 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.2

File hashes

Hashes for concurrent_videocapture-0.0.2.tar.gz
Algorithm Hash digest
SHA256 0dbdbb79711b60c008babd82fb23041a82274f6fb2076b0d8ec3f9f9238d4ccd
MD5 08f4f570a9076fd52770e55d08b1fa1c
BLAKE2b-256 23db4c268b8b90cf34eabbdc6fa0f4eacd31734d21d194ebff45c1f13f2cc0a0

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page