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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0dbdbb79711b60c008babd82fb23041a82274f6fb2076b0d8ec3f9f9238d4ccd |
|
MD5 | 08f4f570a9076fd52770e55d08b1fa1c |
|
BLAKE2b-256 | 23db4c268b8b90cf34eabbdc6fa0f4eacd31734d21d194ebff45c1f13f2cc0a0 |